mirror of https://github.com/Squidex/squidex.git
7 changed files with 129 additions and 45 deletions
@ -0,0 +1,63 @@ |
|||||
|
// ==========================================================================
|
||||
|
// JsonLanguagesConfig.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using Newtonsoft.Json; |
||||
|
using Squidex.Infrastructure; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Apps.Json |
||||
|
{ |
||||
|
public sealed class JsonLanguagesConfig |
||||
|
{ |
||||
|
[JsonProperty] |
||||
|
public Dictionary<string, JsonLanguageConfig> Languages { get; set; } |
||||
|
|
||||
|
[JsonProperty] |
||||
|
public Language Master { get; set; } |
||||
|
|
||||
|
public JsonLanguagesConfig() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public JsonLanguagesConfig(LanguagesConfig value) |
||||
|
{ |
||||
|
Languages = new Dictionary<string, JsonLanguageConfig>(value.Count); |
||||
|
|
||||
|
foreach (LanguageConfig config in value) |
||||
|
{ |
||||
|
Languages.Add(config.Language, new JsonLanguageConfig(config)); |
||||
|
} |
||||
|
|
||||
|
Master = value.Master?.Language; |
||||
|
} |
||||
|
|
||||
|
public LanguagesConfig ToConfig() |
||||
|
{ |
||||
|
var languagesConfig = new LanguageConfig[Languages?.Count ?? 0]; |
||||
|
|
||||
|
if (Languages != null) |
||||
|
{ |
||||
|
var i = 0; |
||||
|
|
||||
|
foreach (var config in Languages) |
||||
|
{ |
||||
|
languagesConfig[i++] = config.Value.ToConfig(config.Key); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
var result = LanguagesConfig.Build(languagesConfig); |
||||
|
|
||||
|
if (Master != null) |
||||
|
{ |
||||
|
result.MakeMaster(Master); |
||||
|
} |
||||
|
|
||||
|
return result; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue