• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

HicServices / RDMP / 6245535001

20 Sep 2023 07:44AM UTC coverage: 57.013%. First build
6245535001

push

github

web-flow
8.1.0 Release (#1628)

* Bump Newtonsoft.Json from 13.0.1 to 13.0.2

Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 13.0.1 to 13.0.2.
- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases)
- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/13.0.1...13.0.2)

---
updated-dependencies:
- dependency-name: Newtonsoft.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump NLog from 5.0.5 to 5.1.0

Bumps [NLog](https://github.com/NLog/NLog) from 5.0.5 to 5.1.0.
- [Release notes](https://github.com/NLog/NLog/releases)
- [Changelog](https://github.com/NLog/NLog/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/NLog/NLog/compare/v5.0.5...v5.1.0)

---
updated-dependencies:
- dependency-name: NLog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump NLog from 5.0.5 to 5.1.0

* Fix -r flag - should have been --results-directory all along

* Bump Newtonsoft.Json from 13.0.1 to 13.0.2

* Bump YamlDotNet from 12.0.2 to 12.1.0

Bumps [YamlDotNet](https://github.com/aaubry/YamlDotNet) from 12.0.2 to 12.1.0.
- [Release notes](https://github.com/aaubry/YamlDotNet/releases)
- [Commits](https://github.com/aaubry/YamlDotNet/compare/v12.0.2...v12.1.0)

---
updated-dependencies:
- dependency-name: YamlDotNet
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump Moq from 4.18.2 to 4.18.3

Bumps [Moq](https://github.com/moq/moq4) from 4.18.2 to 4.18.3.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.18.2...v4.18.3)

---
updated-dependencies:
- dependency-name: Moq
... (continued)

10732 of 20257 branches covered (0.0%)

Branch coverage included in aggregate %.

48141 of 48141 new or added lines in 1086 files covered. (100.0%)

30685 of 52388 relevant lines covered (58.57%)

7387.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.57
/Rdmp.Core/Curation/Data/DataLoad/ProcessTaskArgument.cs
1
// Copyright (c) The University of Dundee 2018-2019
2
// This file is part of the Research Data Management Platform (RDMP).
3
// RDMP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
4
// RDMP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
5
// You should have received a copy of the GNU General Public License along with RDMP. If not, see <https://www.gnu.org/licenses/>.
6

7
using System;
8
using System.Collections.Generic;
9
using System.Data.Common;
10
using System.Linq;
11
using Rdmp.Core.Curation.Data.ImportExport;
12
using Rdmp.Core.Curation.Data.Serialization;
13
using Rdmp.Core.MapsDirectlyToDatabaseTable;
14
using Rdmp.Core.MapsDirectlyToDatabaseTable.Attributes;
15
using Rdmp.Core.Repositories;
16

17
namespace Rdmp.Core.Curation.Data.DataLoad;
18

19
/// <summary>
20
/// Contains a strongly typed value which will be provided to an instantiated data class of ProcessTask at runtime.  These usually correspond
21
/// 1 to 1 with [DemandsInitialization] flagged properties of a data class e.g. 'LoadModules.Generic.Attachers.AnySeparatorFileAttacher' would have
22
/// a ProcessTaskArgument record for the property UnderReadBehaviour and one for IgnoreBlankLines etc.
23
/// 
24
/// <para>This all happens transparently by reflection and is handled at design time through PluginProcessTaskUI seamlessly</para>
25
/// </summary>
26
public sealed class ProcessTaskArgument : Argument
27
{
28
    #region Database Properties
29

30
    private int _processTask_ID;
31

32
    /// <summary>
33
    /// The task for which this <see cref="ProcessTaskArgument"/> stores values
34
    /// </summary>
35
    [Relationship(typeof(ProcessTask), RelationshipType.SharedObject)]
36
    public int ProcessTask_ID
37
    {
38
        get => _processTask_ID;
6,716✔
39
        set => SetField(ref _processTask_ID, value);
8,708✔
40
    }
41

42
    #endregion
43

44
    #region Relationships
45

46
    /// <inheritdoc cref="ProcessTask_ID"/>
47
    [NoMappingToDatabase]
48
    public ProcessTask ProcessTask => Repository.GetObjectByID<ProcessTask>(ProcessTask_ID);
138✔
49

50
    #endregion
51

52
    public ProcessTaskArgument()
×
53
    {
54
    }
×
55

56
    /// <summary>
57
    /// Stores a new argument value for the class hosted by <see cref="ProcessTask"/>. Use
58
    /// <see cref="ArgumentFactory"/> if you want to do this in a more structured manner.
59
    /// </summary>
60
    /// <param name="repository"></param>
61
    /// <param name="parent"></param>
62
    public ProcessTaskArgument(ICatalogueRepository repository, ProcessTask parent)
1,334✔
63
    {
64
        repository.InsertAndHydrate(this, new Dictionary<string, object>
1,334✔
65
        {
1,334✔
66
            { "ProcessTask_ID", parent.ID },
1,334✔
67
            { "Name", $"Parameter{Guid.NewGuid()}" },
1,334✔
68
            { "Type", typeof(string).ToString() }
1,334✔
69
        });
1,334✔
70
    }
1,334✔
71

72
    internal ProcessTaskArgument(ICatalogueRepository repository, DbDataReader r)
73
        : base(repository, r)
7,326✔
74
    {
75
        ProcessTask_ID = int.Parse(r["ProcessTask_ID"].ToString());
7,326✔
76
        Type = r["Type"].ToString();
7,326✔
77
        Name = r["Name"].ToString();
7,326✔
78
        Value = r["Value"] as string;
7,326✔
79
        Description = r["Description"] as string;
7,326✔
80
    }
7,326✔
81

82
    internal ProcessTaskArgument(ShareManager shareManager, ShareDefinition shareDefinition)
48✔
83
    {
84
        shareManager.UpsertAndHydrate(this, shareDefinition);
48✔
85
        try
86
        {
87
            //if the import is into a repository other than the master original repository
88
            if (!shareManager.IsExportedObject(ProcessTask.LoadMetadata))
48✔
89
            {
90
                //and we are a reference type e.g. to a ColumnInfo or something
91
                var t = GetConcreteSystemType();
48✔
92

93
                if (typeof(IMapsDirectlyToDatabaseTable).IsAssignableFrom(t) ||
48✔
94
                    typeof(IEnumerable<IMapsDirectlyToDatabaseTable>).IsAssignableFrom(t))
48✔
95
                {
96
                    //then use the value Null because whatever ID is stored in us won't be pointing to the same object
97
                    //as when we were exported!
98
                    Value = null;
4✔
99
                    SaveToDatabase();
4✔
100
                }
101
            }
102
        }
48✔
103
        catch (Exception e)
×
104
        {
105
            //couldn't work out the Type, maybe it is broken or something, or otherwise someone elses problem
106
            Console.WriteLine(e);
×
107
        }
×
108
    }
48✔
109

110
    /// <inheritdoc/>
111
    public override string ToString() => Name;
2✔
112

113
    /// <summary>
114
    /// Creates new ProcessTaskArguments for the supplied class T (based on what DemandsInitialization fields it has).  Parent is the ProcessTask that hosts the class T e.g. IAttacher
115
    /// </summary>
116
    /// <typeparam name="T">A class that has some DemandsInitializations</typeparam>
117
    /// <param name="parent"></param>
118
    public static IArgument[] CreateArgumentsForClassIfNotExists<T>(IProcessTask parent)
119
    {
120
        var argFactory = new ArgumentFactory();
2✔
121
        return ArgumentFactory.CreateArgumentsForClassIfNotExistsGeneric<T>(
2✔
122
                //tell it how to create new instances of us related to parent
2✔
123
                parent,
2✔
124

2✔
125
                //what arguments already exist
2✔
126
                parent.GetAllArguments().ToArray())
2✔
127

2✔
128
            //convert the result back from generic to specific (us)
2✔
129
            .ToArray();
2✔
130
    }
131

132
    public ProcessTaskArgument ShallowClone(ProcessTask into)
133
    {
134
        var clone = new ProcessTaskArgument(CatalogueRepository, into);
2✔
135
        CopyShallowValuesTo(clone, true);
2✔
136

137
        return clone;
2✔
138
    }
139
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc