• 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

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
    public bool IsIgnored(Type type, string propertyName)
47
    {
48
        if (!Ignores.ContainsKey(type)) return false;
×
49

50
        // if no properties provided, ignore the type entirely
51
        return Ignores[type].Count == 0 || Ignores[type].Contains(propertyName);
×
52
    }
53

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

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

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