/
qwiklly
/
arc-server
Обзор
Документация
Войти
/
qwiklly
/
arc-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
trunk
src/AppRemoteConfig/Helpers/Extensions.cs
48 строк
2 KB
CLTanuki
feat: parameters list routes
04 янв 2024, 15:59
04 янв 2024, 15:59
85ace92
Код
Авторство
О чём код?
namespace AppRemoteConfig.Helpers { using System.Text.Json; using AppRemoteConfig.Models.Database; using AppRemoteConfig.Models.Dto; public static class Extensions { public static string GetDisplayString(this RelationType rtype) => rtype switch { RelationType.EQ => "=", RelationType.NEQ => "!=", RelationType.LT => "<", RelationType.GT => ">", RelationType.LTE => "<=", RelationType.GTE => ">=", _ => "?" }; public static string GetVersionString(this AppVersion appVersion) { return $"{appVersion.Major}.{appVersion.Minor}.{appVersion.Patch}"; } public static Condition[] FromJson(this string conditionString) { var conditions = JsonSerializer.Deserialize<Condition[]>(conditionString); return conditions ?? Array.Empty<Condition>(); } public static string ToJson(this Condition[] conditions) { return JsonSerializer.Serialize(conditions); } public static FlagDefinitionDto ToDto(this ValueFlag flag) { var dto = new FlagDefinitionDto() { FlagKey = flag.FeatureKey, LogicalOperand = flag.LogicalOperand, Params = flag.Conditions.FromJson(), ApplicableVersions = flag.ApplicableVersions.Select(v => v.GetVersionString()).ToArray() }; return dto; } } }