Browse Source

Serialization of Languages config fixed.

pull/152/head
Sebastian Stehle 8 years ago
parent
commit
5d30aecf40
  1. 9
      src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs
  2. 6
      src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppEntity.cs
  3. 7
      src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppRepository_EventHandling.cs
  4. 2
      src/Squidex/app/features/settings/pages/clients/clients-page.component.ts
  5. 8
      tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

9
src/Squidex.Domain.Apps.Core.Model/Apps/LanguagesConfig.cs

@ -13,6 +13,8 @@ using System.Collections.Immutable;
using System.Linq;
using Squidex.Infrastructure;
#pragma warning disable IDE0016 // Use 'throw' expression
namespace Squidex.Domain.Apps.Core.Apps
{
public sealed class LanguagesConfig : IFieldPartitioning
@ -102,7 +104,7 @@ namespace Squidex.Domain.Apps.Core.Apps
var newMaster =
state.Master.Language != language ?
state.Master :
null;
state.Languages.Values.FirstOrDefault();
state = new State(newLanguages, newMaster);
}
@ -161,11 +163,6 @@ namespace Squidex.Domain.Apps.Core.Apps
throw new InvalidOperationException("Config has no master language.");
}
if (master.IsOptional)
{
throw new InvalidOperationException("Config has an optional master language.");
}
this.Master = master;
}
}

6
src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppEntity.cs

@ -40,17 +40,17 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Apps
[BsonRequired]
[BsonElement]
[BsonJson]
public AppClients Clients { get; set; } = new AppClients();
public AppClients Clients { get; set; }
[BsonRequired]
[BsonElement]
[BsonJson]
public AppContributors Contributors { get; set; } = new AppContributors();
public AppContributors Contributors { get; set; }
[BsonRequired]
[BsonElement]
[BsonJson]
public LanguagesConfig LanguagesConfig { get; } = LanguagesConfig.Build(Language.EN);
public LanguagesConfig LanguagesConfig { get; set; }
public PartitionResolver PartitionResolver
{

7
src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppRepository_EventHandling.cs

@ -9,10 +9,12 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Squidex.Domain.Apps.Core.Apps;
using Squidex.Domain.Apps.Events;
using Squidex.Domain.Apps.Events.Apps;
using Squidex.Domain.Apps.Events.Apps.Utils;
using Squidex.Domain.Apps.Read.MongoDb.Utils;
using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.Dispatching;
using Squidex.Infrastructure.Reflection;
@ -41,6 +43,11 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Apps
return Collection.CreateAsync(@event, headers, a =>
{
SimpleMapper.Map(@event, a);
a.Clients = new AppClients();
a.Contributors = new AppContributors();
a.LanguagesConfig = LanguagesConfig.Build(Language.EN);
});
}

2
src/Squidex/app/features/settings/pages/clients/clients-page.component.ts

@ -113,9 +113,9 @@ export class ClientsPageComponent extends AppComponentBase implements OnInit {
.switchMap(app => this.appClientsService.postClient(app, requestDto, this.appClients.version))
.subscribe(dto => {
this.updateClients(this.appClients.addClient(dto.payload, dto.version));
this.resetClientForm();
}, error => {
this.notifyError(error);
}, () => {
this.resetClientForm();
});
}

8
tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

@ -204,14 +204,6 @@ namespace Squidex.Domain.Apps.Core.Model.Apps
Assert.Throws<InvalidOperationException>(() => config.Set(new LanguageConfig(Language.DE, false, Language.EN)));
}
[Fact]
public void Should_throw_exception_if_language_to_make_optional_is_master_language()
{
var config = LanguagesConfig.Build(Language.DE);
Assert.Throws<InvalidOperationException>(() => config.Set(new LanguageConfig(Language.DE, true)));
}
[Fact]
public void Should_provide_enumerators()
{

Loading…
Cancel
Save