Skip to content

Commit c57441b

Browse files
serialization improvements
1 parent 81170ce commit c57441b

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/OneBitSoftware.Utilities.OperationResult/Errors/IOperationError.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public interface IOperationError
44
{
55
int? Code { get; set; }
66

7-
string Message { get; set; }
7+
string? Message { get; set; }
88

99
string? Details { get; set; }
1010
}

src/OneBitSoftware.Utilities.OperationResult/Errors/OperationError.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
public class OperationError : IOperationError
66
{
7-
public OperationError(string message, int? code = null, string? details = null)
7+
public OperationError(string? message = null, int? code = null, string? details = null)
88
{
99
this.Message = message;
1010
this.Code = code;
@@ -13,7 +13,7 @@ public OperationError(string message, int? code = null, string? details = null)
1313

1414
public int? Code { get; set; }
1515

16-
public string Message { get; set; }
16+
public string? Message { get; set; }
1717

1818
public string? Details { get; set; }
1919

src/OneBitSoftware.Utilities.OperationResult/OperationResult.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.Collections.Generic;
55
using System.Linq;
6+
using System.Text.Json.Serialization;
67
using Microsoft.Extensions.Logging;
78
using OneBitSoftware.Utilities.Errors;
89

@@ -24,16 +25,18 @@ public class OperationResult
2425
/// <summary>
2526
/// Gets a value indicating whether the operation has failed.
2627
/// </summary>
28+
[JsonIgnore]
2729
public bool Fail => this.Errors.Any();
2830

2931
/// <summary>
3032
/// A collection of optional success messages that can be used to process positive operation result messages.
3133
/// </summary>
32-
public IEnumerable<string> SuccessMessages
34+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
35+
public IEnumerable<string>? SuccessMessages
3336
{
3437
get
3538
{
36-
return _successMessages;
39+
return _successMessages.Any() ? _successMessages : null;
3740
}
3841
}
3942

@@ -45,6 +48,7 @@ public IEnumerable<string> SuccessMessages
4548
/// <summary>
4649
/// Gets or sets the first exception that resulted from the operation.
4750
/// </summary>
51+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
4852
public Exception? InitialException { get; private set; }
4953

5054
/// <summary>

0 commit comments

Comments
 (0)