mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
// ==========================================================================
|
|
// 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;
|
|
}
|
|
}
|
|
}
|
|
|