// ========================================================================== // AppClientsConverter.cs // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex Group // All rights reserved. // ========================================================================== using System.Collections.Generic; using Newtonsoft.Json; using Squidex.Infrastructure.Json; namespace Squidex.Domain.Apps.Core.Apps.Json { public sealed class LanguagesConfigConverter : JsonClassConverter { protected override void WriteValue(JsonWriter writer, LanguagesConfig value, JsonSerializer serializer) { var json = new Dictionary(value.Count); foreach (LanguageConfig config in value) { json.Add(config.Language, new JsonLanguageConfig(config)); } serializer.Serialize(writer, json); } protected override LanguagesConfig ReadValue(JsonReader reader, JsonSerializer serializer) { var json = serializer.Deserialize>(reader); var languagesConfig = new LanguageConfig[json.Count]; var i = 0; foreach (var config in json) { languagesConfig[i++] = config.Value.ToConfig(config.Key); } return LanguagesConfig.Build(languagesConfig); } } }