static Metrics() { if (!Utils.HaveEncryptedJson(Consts.MetricsKeyHeader)) { Utils.ToEcryptedJson(Utils.MakeRandomKey(), Consts.MetricsKeyHeader); } }
public static async ValueTask <string> GetMetricsKey() { using var _ = await _creationLock.WaitAsync(); if (!Utils.HaveEncryptedJson(Consts.MetricsKeyHeader)) { var key = Utils.MakeRandomKey(); await key.ToEcryptedJson(Consts.MetricsKeyHeader); return(key); } try { return(await Utils.FromEncryptedJson <string>(Consts.MetricsKeyHeader)); } catch (Exception) { var key = Utils.MakeRandomKey(); await key.ToEcryptedJson(Consts.MetricsKeyHeader); return(key); } }