Browse Source

Namespaces adjusted.

pull/76/head
Sebastian Stehle 9 years ago
parent
commit
6165edf9fe
  1. 4
      src/Squidex.Infrastructure.GetEventStore/CQRS/Events/Formatter.cs
  2. 4
      src/Squidex.Infrastructure.GetEventStore/CQRS/Events/GetEventStore.cs
  3. 3
      src/Squidex.Infrastructure.GetEventStore/CQRS/Events/GetEventStoreSubscription.cs
  4. 1
      src/Squidex.Infrastructure.GetEventStore/Squidex.Infrastructure.GetEventStore.csproj
  5. 3
      src/Squidex.Infrastructure.GoogleCloud/Assets/GoogleCloudAssetStore.cs
  6. 1
      src/Squidex.Infrastructure.GoogleCloud/Squidex.Infrastructure.GoogleCloud.csproj
  7. 2
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEvent.cs
  8. 2
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventCommit.cs
  9. 3
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventConsumerInfo.cs
  10. 4
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventConsumerInfoRepository.cs
  11. 8
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventStore.cs
  12. 3
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/PollingSubscription.cs
  13. 2
      src/Squidex.Infrastructure.MongoDb/CQRS/Events/StreamPosition.cs
  14. 1
      src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj
  15. 2
      src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsage.cs
  16. 4
      src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageStore.cs
  17. 3
      src/Squidex.Infrastructure.RabbitMq/CQRS/Events/RabbitMqEventConsumer.cs
  18. 1
      src/Squidex.Infrastructure.RabbitMq/Squidex.Infrastructure.RabbitMq.csproj
  19. 2
      src/Squidex.Infrastructure.Redis/RedisPubSub.cs
  20. 2
      src/Squidex.Infrastructure.Redis/RedisSubscription.cs
  21. 1
      src/Squidex.Infrastructure.Redis/Squidex.Infrastructure.Redis.csproj
  22. 1
      src/Squidex/Config/Domain/AssetStoreModule.cs
  23. 1
      src/Squidex/Config/Domain/EventPublishersModule.cs
  24. 2
      src/Squidex/Config/Domain/EventStoreModule.cs
  25. 1
      src/Squidex/Config/Domain/PubSubModule.cs
  26. 2
      src/Squidex/Config/Domain/StoreMongoDbModule.cs
  27. 1
      tests/Benchmarks/Tests/AppendToEventStore.cs
  28. 1
      tests/Benchmarks/Tests/AppendToEventStoreWithManyWriters.cs
  29. 1
      tests/Benchmarks/Tests/HandleEvents.cs
  30. 1
      tests/Benchmarks/Tests/HandleEventsWithManyWriters.cs
  31. 4
      tests/Squidex.Domain.Apps.Read.Tests/Schemas/ODataQueryTests.cs

4
src/Squidex.Infrastructure.GetEventStore/CQRS/Events/Formatter.cs

@ -8,11 +8,9 @@
using System.Text; using System.Text;
using EventStore.ClientAPI; using EventStore.ClientAPI;
using Squidex.Infrastructure.CQRS.Events;
using EventData = Squidex.Infrastructure.CQRS.Events.EventData;
using EventStoreData = EventStore.ClientAPI.EventData; using EventStoreData = EventStore.ClientAPI.EventData;
namespace Squidex.Infrastructure.GetEventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public static class Formatter public static class Formatter
{ {

4
src/Squidex.Infrastructure.GetEventStore/CQRS/Events/GetEventStore.cs

@ -11,13 +11,11 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using EventStore.ClientAPI; using EventStore.ClientAPI;
using Squidex.Infrastructure.CQRS.Events;
using EventData = Squidex.Infrastructure.CQRS.Events.EventData;
// ReSharper disable ConvertIfStatementToSwitchStatement // ReSharper disable ConvertIfStatementToSwitchStatement
// ReSharper disable InvertIf // ReSharper disable InvertIf
namespace Squidex.Infrastructure.GetEventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class GetEventStore : IEventStore, IExternalSystem public sealed class GetEventStore : IEventStore, IExternalSystem
{ {

3
src/Squidex.Infrastructure.GetEventStore/CQRS/Events/GetEventStoreSubscription.cs

@ -15,9 +15,8 @@ using System.Threading.Tasks;
using EventStore.ClientAPI; using EventStore.ClientAPI;
using EventStore.ClientAPI.Exceptions; using EventStore.ClientAPI.Exceptions;
using EventStore.ClientAPI.Projections; using EventStore.ClientAPI.Projections;
using Squidex.Infrastructure.CQRS.Events;
namespace Squidex.Infrastructure.GetEventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
internal sealed class EventStoreSubscription : DisposableObjectBase, IEventSubscription internal sealed class EventStoreSubscription : DisposableObjectBase, IEventSubscription
{ {

1
src/Squidex.Infrastructure.GetEventStore/Squidex.Infrastructure.GetEventStore.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework> <TargetFramework>netstandard1.6</TargetFramework>
<RootNamespace>Squidex.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType> <DebugType>full</DebugType>

3
src/Squidex.Infrastructure.GoogleCloud/Assets/GoogleCloudAssetStore.cs

@ -12,9 +12,8 @@ using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Google; using Google;
using Google.Cloud.Storage.V1; using Google.Cloud.Storage.V1;
using Squidex.Infrastructure.Assets;
namespace Squidex.Infrastructure.GoogleCloud namespace Squidex.Infrastructure.Assets
{ {
public sealed class GoogleCloudAssetStore : IAssetStore, IExternalSystem public sealed class GoogleCloudAssetStore : IAssetStore, IExternalSystem
{ {

1
src/Squidex.Infrastructure.GoogleCloud/Squidex.Infrastructure.GoogleCloud.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework> <TargetFramework>netstandard1.6</TargetFramework>
<RootNamespace>Squidex.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType> <DebugType>full</DebugType>

2
src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEvent.cs

@ -9,7 +9,7 @@
using System; using System;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public class MongoEvent public class MongoEvent
{ {

2
src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventCommit.cs

@ -10,7 +10,7 @@ using System;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class MongoEventCommit public sealed class MongoEventCommit
{ {

3
src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventConsumerInfo.cs

@ -8,9 +8,8 @@
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
using Squidex.Infrastructure.CQRS.Events;
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class MongoEventConsumerInfo : IEventConsumerInfo public sealed class MongoEventConsumerInfo : IEventConsumerInfo
{ {

4
src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventConsumerInfoRepository.cs

@ -11,12 +11,12 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Driver; using MongoDB.Driver;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.MongoDb;
// ReSharper disable ConvertIfStatementToReturnStatement // ReSharper disable ConvertIfStatementToReturnStatement
// ReSharper disable RedundantIfElseBlock // ReSharper disable RedundantIfElseBlock
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class MongoEventConsumerInfoRepository : MongoRepositoryBase<MongoEventConsumerInfo>, IEventConsumerInfoRepository public sealed class MongoEventConsumerInfoRepository : MongoRepositoryBase<MongoEventConsumerInfo>, IEventConsumerInfoRepository
{ {

8
src/Squidex.Infrastructure.MongoDb/CQRS/Events/MongoEventStore.cs

@ -6,22 +6,22 @@
// All rights reserved. // All rights reserved.
// ========================================================================== // ==========================================================================
using MongoDB.Bson;
using MongoDB.Driver;
using Squidex.Infrastructure.CQRS.Events;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reactive.Linq; using System.Reactive.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
using Squidex.Infrastructure.MongoDb;
using Squidex.Infrastructure.Tasks; using Squidex.Infrastructure.Tasks;
// ReSharper disable RedundantIfElseBlock // ReSharper disable RedundantIfElseBlock
// ReSharper disable InvertIf // ReSharper disable InvertIf
// ReSharper disable ConvertIfStatementToConditionalTernaryExpression // ReSharper disable ConvertIfStatementToConditionalTernaryExpression
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public class MongoEventStore : MongoRepositoryBase<MongoEventCommit>, IEventStore public class MongoEventStore : MongoRepositoryBase<MongoEventCommit>, IEventStore
{ {

3
src/Squidex.Infrastructure.MongoDb/CQRS/Events/PollingSubscription.cs

@ -8,13 +8,12 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.Tasks; using Squidex.Infrastructure.Tasks;
using Squidex.Infrastructure.Timers; using Squidex.Infrastructure.Timers;
// ReSharper disable InvertIf // ReSharper disable InvertIf
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class PollingSubscription : DisposableObjectBase, IEventSubscription public sealed class PollingSubscription : DisposableObjectBase, IEventSubscription
{ {

2
src/Squidex.Infrastructure.MongoDb/CQRS/Events/StreamPosition.cs

@ -10,7 +10,7 @@
using MongoDB.Bson; using MongoDB.Bson;
namespace Squidex.Infrastructure.MongoDb.EventStore namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class StreamPosition public sealed class StreamPosition
{ {

1
src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework> <TargetFramework>netstandard1.6</TargetFramework>
<RootNamespace>Squidex.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType> <DebugType>full</DebugType>

2
src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsage.cs

@ -10,7 +10,7 @@ using System;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
namespace Squidex.Infrastructure.MongoDb.UsageTracker namespace Squidex.Infrastructure.UsageTracking
{ {
public sealed class MongoUsage public sealed class MongoUsage
{ {

4
src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageStore.cs

@ -11,9 +11,9 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using MongoDB.Driver; using MongoDB.Driver;
using Squidex.Infrastructure.UsageTracking; using Squidex.Infrastructure.MongoDb;
namespace Squidex.Infrastructure.MongoDb.UsageTracker namespace Squidex.Infrastructure.UsageTracking
{ {
public sealed class MongoUsageStore : MongoRepositoryBase<MongoUsage>, IUsageStore public sealed class MongoUsageStore : MongoRepositoryBase<MongoUsage>, IUsageStore
{ {

3
src/Squidex.Infrastructure.RabbitMq/CQRS/Events/RabbitMqEventConsumer.cs

@ -11,12 +11,11 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Newtonsoft.Json; using Newtonsoft.Json;
using RabbitMQ.Client; using RabbitMQ.Client;
using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.Tasks; using Squidex.Infrastructure.Tasks;
// ReSharper disable InvertIf // ReSharper disable InvertIf
namespace Squidex.Infrastructure.RabbitMq namespace Squidex.Infrastructure.CQRS.Events
{ {
public sealed class RabbitMqEventConsumer : DisposableObjectBase, IExternalSystem, IEventConsumer public sealed class RabbitMqEventConsumer : DisposableObjectBase, IExternalSystem, IEventConsumer
{ {

1
src/Squidex.Infrastructure.RabbitMq/Squidex.Infrastructure.RabbitMq.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework> <TargetFramework>netstandard1.6</TargetFramework>
<RootNamespace>Squidex.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType> <DebugType>full</DebugType>

2
src/Squidex.Infrastructure.Redis/RedisPubSub.cs

@ -11,7 +11,7 @@ using System.Collections.Concurrent;
using Squidex.Infrastructure.Log; using Squidex.Infrastructure.Log;
using StackExchange.Redis; using StackExchange.Redis;
namespace Squidex.Infrastructure.Redis namespace Squidex.Infrastructure
{ {
public class RedisPubSub : IPubSub, IExternalSystem public class RedisPubSub : IPubSub, IExternalSystem
{ {

2
src/Squidex.Infrastructure.Redis/RedisSubscription.cs

@ -14,7 +14,7 @@ using StackExchange.Redis;
// ReSharper disable InvertIf // ReSharper disable InvertIf
namespace Squidex.Infrastructure.Redis namespace Squidex.Infrastructure
{ {
internal sealed class RedisSubscription internal sealed class RedisSubscription
{ {

1
src/Squidex.Infrastructure.Redis/Squidex.Infrastructure.Redis.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework> <TargetFramework>netstandard1.6</TargetFramework>
<RootNamespace>Squidex.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType> <DebugType>full</DebugType>

1
src/Squidex/Config/Domain/AssetStoreModule.cs

@ -11,7 +11,6 @@ using Autofac;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.Assets; using Squidex.Infrastructure.Assets;
using Squidex.Infrastructure.GoogleCloud;
using Squidex.Infrastructure.Log; using Squidex.Infrastructure.Log;
// ReSharper disable InvertIf // ReSharper disable InvertIf

1
src/Squidex/Config/Domain/EventPublishersModule.cs

@ -12,7 +12,6 @@ using Microsoft.Extensions.Configuration;
using Newtonsoft.Json; using Newtonsoft.Json;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.RabbitMq;
// ReSharper disable InvertIf // ReSharper disable InvertIf

2
src/Squidex/Config/Domain/EventStoreModule.cs

@ -14,8 +14,6 @@ using Microsoft.Extensions.Configuration;
using MongoDB.Driver; using MongoDB.Driver;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.GetEventStore;
using Squidex.Infrastructure.MongoDb.EventStore;
namespace Squidex.Config.Domain namespace Squidex.Config.Domain
{ {

1
src/Squidex/Config/Domain/PubSubModule.cs

@ -11,7 +11,6 @@ using Autofac;
using Autofac.Core; using Autofac.Core;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.Redis;
using StackExchange.Redis; using StackExchange.Redis;
namespace Squidex.Config.Domain namespace Squidex.Config.Domain

2
src/Squidex/Config/Domain/StoreMongoDbModule.cs

@ -30,8 +30,6 @@ using Squidex.Domain.Users.MongoDb;
using Squidex.Domain.Users.MongoDb.Infrastructure; using Squidex.Domain.Users.MongoDb.Infrastructure;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.MongoDb.EventStore;
using Squidex.Infrastructure.MongoDb.UsageTracker;
using Squidex.Infrastructure.UsageTracking; using Squidex.Infrastructure.UsageTracking;
using Squidex.Shared.Users; using Squidex.Shared.Users;

1
tests/Benchmarks/Tests/AppendToEventStore.cs

@ -11,7 +11,6 @@ using Benchmarks.Utils;
using MongoDB.Driver; using MongoDB.Driver;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.MongoDb.EventStore;
namespace Benchmarks.Tests namespace Benchmarks.Tests
{ {

1
tests/Benchmarks/Tests/AppendToEventStoreWithManyWriters.cs

@ -12,7 +12,6 @@ using Benchmarks.Utils;
using MongoDB.Driver; using MongoDB.Driver;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.MongoDb.EventStore;
namespace Benchmarks.Tests namespace Benchmarks.Tests
{ {

1
tests/Benchmarks/Tests/HandleEvents.cs

@ -15,7 +15,6 @@ using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.Json; using Squidex.Infrastructure.Json;
using Squidex.Infrastructure.Log; using Squidex.Infrastructure.Log;
using Squidex.Infrastructure.MongoDb.EventStore;
// ReSharper disable InvertIf // ReSharper disable InvertIf

1
tests/Benchmarks/Tests/HandleEventsWithManyWriters.cs

@ -16,7 +16,6 @@ using Squidex.Infrastructure;
using Squidex.Infrastructure.CQRS.Events; using Squidex.Infrastructure.CQRS.Events;
using Squidex.Infrastructure.Json; using Squidex.Infrastructure.Json;
using Squidex.Infrastructure.Log; using Squidex.Infrastructure.Log;
using Squidex.Infrastructure.MongoDb.EventStore;
// ReSharper disable InvertIf // ReSharper disable InvertIf

4
tests/Squidex.Domain.Apps.Read.Tests/Schemas/ODataQueryTests.cs

@ -18,15 +18,15 @@ using Squidex.Domain.Apps.Core;
using Squidex.Domain.Apps.Core.Schemas; using Squidex.Domain.Apps.Core.Schemas;
using Squidex.Domain.Apps.Read.Apps; using Squidex.Domain.Apps.Read.Apps;
using Squidex.Domain.Apps.Read.Contents.Edm; using Squidex.Domain.Apps.Read.Contents.Edm;
using Squidex.Domain.Apps.Read.MongoDb.Contents;
using Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors; using Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors;
using Squidex.Domain.Apps.Read.Schemas;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.MongoDb;
using Xunit; using Xunit;
// ReSharper disable SpecifyACultureInStringConversionExplicitly // ReSharper disable SpecifyACultureInStringConversionExplicitly
namespace Squidex.Domain.Apps.Read.MongoDb.Contents namespace Squidex.Domain.Apps.Read.Schemas
{ {
public class ODataQueryTests public class ODataQueryTests
{ {

Loading…
Cancel
Save