Projekt

Obecné

Profil

Stáhnout (1.47 KB) Statistiky
| Větev: | Tag: | Revize:
1
using System.Text.Json;
2
using System.Text.Json.Serialization;
3
using Newtonsoft.Json;
4
using JsonSerializer = System.Text.Json.JsonSerializer;
5

    
6
namespace LDClient.network.data {
7
    [JsonObject(MemberSerialization.OptIn)]
8
    public class Payload {
9

    
10
        [JsonPropertyName("username")]
11
        public string? UserName { get; set; }
12

    
13
        [JsonPropertyName("hostname")]
14
        public string? HostName { get; set; }
15

    
16
        [JsonPropertyName("timestamp")]
17
        //[Newtonsoft.Json.JsonConverter(typeof(DateFormatConverter), "yyyy-MM-dd HH:mm:ss.ffffff")]
18
        public string? TimeStamp { get; set; }
19

    
20
        [JsonPropertyName("head_device")]
21
        public DebuggerInfo? HeadDevice { get; set; }
22

    
23

    
24
        [JsonPropertyName("body_device")]
25
        public DebuggerInfo?  BodyDevice { get; set; }
26
        
27
        [JsonPropertyName("status")]
28
        //[Newtonsoft.Json.JsonConverter(typeof(StringEnumConverter))]
29
        public ConnectionStatus Status { get; set; }
30

    
31

    
32
        public override string ToString() {
33
            return ParseToJson(this);
34
        }
35

    
36
        public string ParseToJson() {
37
            return Payload.ParseToJson(this);
38
        }
39

    
40
        public static string ParseToJson(Payload payload) {
41
            var options = new JsonSerializerOptions {
42
                Converters = {
43
                    new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)
44
                }
45
            };
46

    
47
            return JsonSerializer.Serialize(payload, options);
48
        }
49
    }
50
}
(3-3/3)