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

HicServices / RDMP / 7194961165

13 Dec 2023 12:07PM UTC coverage: 56.776% (-0.2%) from 57.013%
7194961165

push

github

web-flow
Merge Latest Release into main (#1702)

* Bump YamlDotNet from 13.3.1 to 13.4.0

Bumps [YamlDotNet](https://github.com/aaubry/YamlDotNet) from 13.3.1 to 13.4.0.
- [Release notes](https://github.com/aaubry/YamlDotNet/releases)
- [Commits](https://github.com/aaubry/YamlDotNet/compare/v13.3.1...v13.4.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 shogo82148/actions-setup-perl from 1.23.1 to 1.24.1

Bumps [shogo82148/actions-setup-perl](https://github.com/shogo82148/actions-setup-perl) from 1.23.1 to 1.24.1.
- [Release notes](https://github.com/shogo82148/actions-setup-perl/releases)
- [Commits](https://github.com/shogo82148/actions-setup-perl/compare/v1.23.1...v1.24.1)

---
updated-dependencies:
- dependency-name: shogo82148/actions-setup-perl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* fix checkbox issue

* improve confirmation text (#1639)

* improve confirmation text
* Loop tidyup, use var where possible

---------

Co-authored-by: jas88 <j.a.sutherland@dundee.ac.uk>

* correct typo in create logging sql (#1640)

* Feature/ci codescan (#1641)

* Move SecurityCodescan.VS2019 to run on Github CI alone, integrate results with CodeQL
* Remove SecurityCodescan from Packages.md, no longer used via Nuget

---------

Co-authored-by: James A Sutherland <j@sutherland.pw>

* hide source control when not available

* Remove old Plugin object bits, tidy up (#1636)

* Remove old Plugin object bits, tidy up

* Purge remaining bits of AllExpiredPluginsNode

* Fix plugin display name in tree

* Update CreateNewDataExtractionProjectUI.cs

Casting fix

* Feature/rdmp42 delete plugins (#1642)

* add ui plugin delete functionality

* Warning and inherita... (continued)

10722 of 20351 branches covered (0.0%)

Branch coverage included in aggregate %.

215 of 789 new or added lines in 63 files covered. (27.25%)

39 existing lines in 16 files now uncovered.

30650 of 52518 relevant lines covered (58.36%)

7294.17 hits per line

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

0.0
/Rdmp.Core/ReusableLibraryCode/Serialization/IgnorableSerializerContractResolver.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.Reflection;
10
using Newtonsoft.Json;
11
using Newtonsoft.Json.Serialization;
12

13
namespace Rdmp.Core.ReusableLibraryCode.Serialization;
14

15
/// <summary>
16
/// Special JsonConvert resolver that allows you to ignore properties.  See https://stackoverflow.com/a/13588192/1037948
17
/// </summary>
18
public class IgnorableSerializerContractResolver : DefaultContractResolver
19
{
20
    protected readonly Dictionary<Type, HashSet<string>> Ignores;
21

22
    public IgnorableSerializerContractResolver()
×
23
    {
24
        Ignores = new Dictionary<Type, HashSet<string>>();
×
25
    }
×
26

27
    /// <summary>
28
    /// Explicitly ignore the given property(s) for the given type
29
    /// </summary>
30
    /// <param name="type"></param>
31
    /// <param name="propertyName">one or more properties to ignore.  Leave empty to ignore the type entirely.</param>
32
    public void Ignore(Type type, params string[] propertyName)
33
    {
34
        // start bucket if DNE
35
        if (!Ignores.ContainsKey(type)) Ignores[type] = new HashSet<string>();
×
36

37
        foreach (var prop in propertyName) Ignores[type].Add(prop);
×
38
    }
×
39

40
    /// <summary>
41
    /// Is the given property for the given type ignored?
42
    /// </summary>
43
    /// <param name="type"></param>
44
    /// <param name="propertyName"></param>
45
    /// <returns></returns>
46
    private bool IsIgnored(Type type, string propertyName)
47
    {
NEW
48
        return Ignores.TryGetValue(type, out var ignore) && (
×
NEW
49
            // if no properties provided, ignore the type entirely
×
NEW
50
            ignore.Count == 0 || ignore.Contains(propertyName));
×
51
    }
52

53
    /// <summary>
54
    /// The decision logic goes here
55
    /// </summary>
56
    /// <param name="member"></param>
57
    /// <param name="memberSerialization"></param>
58
    /// <returns></returns>
59
    protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
60
    {
61
        var property = base.CreateProperty(member, memberSerialization);
×
62

63
        if (IsIgnored(property.DeclaringType, property.PropertyName)
×
64
            // need to check basetype as well for EF -- @per comment by user576838 - LT: but it can be null, so check that too!
×
65
            || (property.DeclaringType?.BaseType != null &&
×
66
                IsIgnored(property.DeclaringType.BaseType, property.PropertyName)))
×
67
            property.ShouldSerialize = _ => false;
×
68

69
        return property;
×
70
    }
71
}
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