Projekt

Obecné

Profil

« Předchozí | Další » 

Revize aaad9ad4

Přidáno uživatelem Pultak před asi 2 roky(ů)

re #9441 Main example + Payload feature for better manipulation

Zobrazit rozdíly:

ld_client/LDClient/Program.cs
1
using LDClient.network;
1
using LDClient.network;
2 2
using LDClient.utils;
3 3
using LDClient.utils.loggers;
4 4

  
......
10 10
    public static ALogger DefaultLogger { get; } = ALogger.Current;
11 11

  
12 12
    public static IApiClient DefaultApiClient { get; set; } = new ApiClient(Config.ApiBaseAddress,
13
        Config.ApiPort, Config.ApiUsbEndPoint, Config.ApiRetryPeriod);
13
        Config.ApiPort, Config.ApiUsbEndPoint, Config.RetryPeriod, Config.MaxEntries,
14
        Config.MaxRetries, Config.CacheFileName);
14 15

  
15 16
    // Main Method
16 17
    public static async Task Main() {
18

  
19
        var apiClientThread = new Thread(DefaultApiClient.Run) {
20
            IsBackground = true
21
        };
22
        apiClientThread.Start();
23

  
24
        DefaultLogger.Debug("Main -> starting SendPayloadAsync");
17 25
        await DefaultApiClient.SendPayloadAsync(ApiClient.ExampleInfo);
18
        Console.WriteLine("Finished!");
26

  
27

  
28
        DefaultLogger.Debug("Main -> lets slack for a bit");
29
        Thread.Sleep(30000);
30

  
31
        DefaultLogger.Debug("Main -> stopping the ApiClient");
32
        DefaultApiClient.Stop();
33
        apiClientThread.Join();
34
        DefaultLogger.Debug("Main -> finished");
35
    }
19 36
    }
20 37
}
ld_client/LDClient/network/data/Payload.cs
1
using System.Text.Json.Serialization;
1
using System.Text.Json;
2
using System.Text.Json.Serialization;
2 3
using Newtonsoft.Json;
4
using JsonSerializer = System.Text.Json.JsonSerializer;
3 5

  
4 6
namespace LDClient.network.data {
5 7
    [JsonObject(MemberSerialization.OptIn)]
......
25 27
        [JsonPropertyName("status")]
26 28
        //[Newtonsoft.Json.JsonConverter(typeof(StringEnumConverter))]
27 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
        }
28 49
    }
29 50
}

Také k dispozici: Unified diff