diff --git a/zero.Core/Api/BackofficeApi.cs b/zero.Core/Api/BackofficeApi.cs index 6156e227..17e2d5d4 100644 --- a/zero.Core/Api/BackofficeApi.cs +++ b/zero.Core/Api/BackofficeApi.cs @@ -199,19 +199,19 @@ namespace zero.Core.Api isCreate = true; model.CreatedDate = DateTimeOffset.Now; - model.CreatedById = userId.Ref(); + model.CreatedById = userId; if (model is ILanguageAwareEntity) { - (model as ILanguageAwareEntity).LanguageId = "languages.1-A".Ref(); // TODO correct language id + (model as ILanguageAwareEntity).LanguageId = "languages.1-A"; // TODO correct language id } } // update name alias and last modified model.Alias = Safenames.Alias(model.Name); - model.LastModifiedById = userId.Ref(); + model.LastModifiedById = userId; model.LastModifiedDate = DateTimeOffset.Now; - model.CreatedById ??= userId.Ref(); + model.CreatedById ??= userId; using IAsyncDocumentSession session = Raven.OpenAsyncSession(); session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false); diff --git a/zero.Core/Api/MediaApi.cs b/zero.Core/Api/MediaApi.cs index 21d5f957..9a974a7e 100644 --- a/zero.Core/Api/MediaApi.cs +++ b/zero.Core/Api/MediaApi.cs @@ -145,7 +145,7 @@ namespace zero.Core.Api return EntityResult.Fail("@errors.idnotfound"); } - model.FolderId = parent?.Id.Ref(); + model.FolderId = parent?.Id; return await Save(model); } @@ -172,7 +172,7 @@ namespace zero.Core.Api // generate file id which is used as the folder name on disk media.FileId = Guid.NewGuid().ToString(); - media.FolderId = folderId.Ref(); + media.FolderId = folderId; // generate file name media.Name = Safenames.File(file.FileName); diff --git a/zero.Core/Api/MediaFolderApi.cs b/zero.Core/Api/MediaFolderApi.cs index 1f751ba5..478e021c 100644 --- a/zero.Core/Api/MediaFolderApi.cs +++ b/zero.Core/Api/MediaFolderApi.cs @@ -170,7 +170,7 @@ namespace zero.Core.Api return EntityResult.Fail("@errors.idnotfound"); } - model.ParentId = parent?.Id.Ref(); + model.ParentId = parent?.Id; return await Save(model); } diff --git a/zero.Core/Api/PagesApi.cs b/zero.Core/Api/PagesApi.cs index 070fa2ad..e7355352 100644 --- a/zero.Core/Api/PagesApi.cs +++ b/zero.Core/Api/PagesApi.cs @@ -133,7 +133,7 @@ namespace zero.Core.Api return EntityResult.Fail("@errors.page.parentnotallowed"); } - model.ParentId = parent?.Id.Ref(); + model.ParentId = parent?.Id; return await Save(model); } @@ -154,7 +154,7 @@ namespace zero.Core.Api // update new page properties model.Id = null; - model.ParentId = parent?.Id.Ref(); + model.ParentId = parent?.Id; model.IsActive = false; model.CreatedDate = DateTimeOffset.Now; @@ -192,7 +192,7 @@ namespace zero.Core.Api IPage childPage = child.Value.Clone(); childPage.Id = null; childPage.IsActive = false; - childPage.ParentId = newParentId.Ref(); + childPage.ParentId = newParentId; childPage.CreatedDate = DateTimeOffset.Now; await session.StoreAsync(childPage); @@ -258,7 +258,7 @@ namespace zero.Core.Api string[] ids = entities.Select(x => x.OriginalId).ToArray(); // check if parents are available - string[] parentIds = entities.Select(x => x.Content as IPage).Where(x => x != null && x.ParentId != null).Select(x => x.ParentId?.Id).ToArray(); + string[] parentIds = entities.Select(x => x.Content as IPage).Where(x => x != null).Select(x => x.ParentId).ToArray(); parentIds = (await GetByIds(parentIds)).Where(x => x.Value != null).Select(x => x.Value.Id).ToArray(); // validate and restore all items @@ -276,7 +276,7 @@ namespace zero.Core.Api page.IsActive = false; // validate app and parent - if (!Scope.IsAllowed(page.AppId) || (!page.ParentId.Id.IsNullOrEmpty() && !ids.Contains(page.ParentId) && !parentIds.Contains(page.ParentId))) + if (!Scope.IsAllowed(page.AppId) || (!page.ParentId.IsNullOrEmpty() && !ids.Contains(page.ParentId) && !parentIds.Contains(page.ParentId))) { // TODO correct error message continue; diff --git a/zero.Core/Api/RevisionsApi.cs b/zero.Core/Api/RevisionsApi.cs index f015833b..fb379166 100644 --- a/zero.Core/Api/RevisionsApi.cs +++ b/zero.Core/Api/RevisionsApi.cs @@ -60,7 +60,7 @@ namespace zero.Core.Api List revisions = new List(); // load affected users as the revisions could have been edited by other users too - string[] userIds = items.Where(x => x.LastModifiedById != null).Select(x => x.LastModifiedById.Id).Distinct().ToArray(); + string[] userIds = items.Select(x => x.LastModifiedById).Distinct().ToArray(); Dictionary users = await session.LoadAsync(userIds); // create revision objects diff --git a/zero.Core/Api/SetupApi.cs b/zero.Core/Api/SetupApi.cs index b5dee927..6057152c 100644 --- a/zero.Core/Api/SetupApi.cs +++ b/zero.Core/Api/SetupApi.cs @@ -75,7 +75,7 @@ namespace zero.Core.Api Email = model.User.Email, Name = model.User.Name, IsActive = true, - LanguageId = Options.DefaultLanguage.Ref(), + LanguageId = Options.DefaultLanguage, Alias = Safenames.Alias(model.User.Name), IsEmailConfirmed = true }; diff --git a/zero.Core/Entities/ILanguageAwareEntity.cs b/zero.Core/Entities/ILanguageAwareEntity.cs index 5777f948..3f22c487 100644 --- a/zero.Core/Entities/ILanguageAwareEntity.cs +++ b/zero.Core/Entities/ILanguageAwareEntity.cs @@ -10,6 +10,6 @@ /// /// Language of the entity /// - Ref LanguageId { get; set; } + string LanguageId { get; set; } } } diff --git a/zero.Core/Entities/Language.cs b/zero.Core/Entities/Language.cs index a7e4c5dd..336a7532 100644 --- a/zero.Core/Entities/Language.cs +++ b/zero.Core/Entities/Language.cs @@ -14,7 +14,7 @@ namespace zero.Core.Entities public bool IsOptional { get; set; } /// - public Ref InheritedLanguageId { get; set; } + public string InheritedLanguageId { get; set; } } [Collection("Languages")] @@ -38,6 +38,6 @@ namespace zero.Core.Entities /// /// If this language is inherited it gets all missing properties from its parent /// - Ref InheritedLanguageId { get; set; } + string InheritedLanguageId { get; set; } } } \ No newline at end of file diff --git a/zero.Core/Entities/Media/Media.cs b/zero.Core/Entities/Media/Media.cs index 2c4c4127..0df91dab 100644 --- a/zero.Core/Entities/Media/Media.cs +++ b/zero.Core/Entities/Media/Media.cs @@ -10,7 +10,7 @@ namespace zero.Core.Entities public string FileId { get; set; } /// - public Ref FolderId { get; set; } + public string FolderId { get; set; } /// public string AlternativeText { get; set; } @@ -55,7 +55,7 @@ namespace zero.Core.Entities /// /// Id of the media folder /// - public Ref FolderId { get; set; } + public string FolderId { get; set; } /// /// Alternative text which is used when the image can't be loaded diff --git a/zero.Core/Entities/Media/MediaFolder.cs b/zero.Core/Entities/Media/MediaFolder.cs index 24efa907..70bb5b87 100644 --- a/zero.Core/Entities/Media/MediaFolder.cs +++ b/zero.Core/Entities/Media/MediaFolder.cs @@ -6,7 +6,7 @@ namespace zero.Core.Entities public class MediaFolder : ZeroEntity, IMediaFolder { /// - public Ref ParentId { get; set; } + public string ParentId { get; set; } } @@ -19,6 +19,6 @@ namespace zero.Core.Entities /// /// Parent folder id /// - Ref ParentId { get; set; } + string ParentId { get; set; } } } \ No newline at end of file diff --git a/zero.Core/Entities/Pages/Page.cs b/zero.Core/Entities/Pages/Page.cs index d0f78476..68a20038 100644 --- a/zero.Core/Entities/Pages/Page.cs +++ b/zero.Core/Entities/Pages/Page.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.AspNetCore.Mvc; +using System; using zero.Core.Attributes; namespace zero.Core.Entities @@ -10,7 +11,7 @@ namespace zero.Core.Entities public class Page : ZeroEntity, IPage { /// - public Ref ParentId { get; set; } + public string ParentId { get; set; } /// public string PageTypeAlias { get; set; } @@ -29,7 +30,7 @@ namespace zero.Core.Entities /// /// Id of the parent page /// - Ref ParentId { get; set; } + string ParentId { get; set; } /// /// Alias of the used page type diff --git a/zero.Core/Entities/Ref.cs b/zero.Core/Entities/Ref.cs index 791a2157..9d9cc460 100644 --- a/zero.Core/Entities/Ref.cs +++ b/zero.Core/Entities/Ref.cs @@ -1,5 +1,4 @@ using System; -using zero.Core.Extensions; namespace zero.Core.Entities { @@ -7,9 +6,6 @@ namespace zero.Core.Entities { public Ref() : base() { } public Ref(string id) : base(id) { } - - public static implicit operator string(Ref obj) => obj.Id; - public static explicit operator Ref(string obj) => new Ref(obj); } @@ -36,39 +32,6 @@ namespace zero.Core.Entities { return Id; } - - - public bool Equals(Ref other) - { - if (ReferenceEquals(null, other)) return false; - if (ReferenceEquals(this, other)) return true; - return string.Equals(Id, other.Id, StringComparison.InvariantCultureIgnoreCase); - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) return false; - if (ReferenceEquals(this, obj)) return true; - return ReferenceEquals(this, obj) || Equals((Ref)obj); - } - - public override int GetHashCode() - { - unchecked - { - return StringComparer.InvariantCultureIgnoreCase.GetHashCode(Id); - } - } - - public static bool operator ==(Ref left, Ref right) => Equals(left, right); - public static bool operator !=(Ref left, Ref right) => !Equals(left, right); - public static bool operator ==(Ref left, string right) => string.Equals(left?.Id, right, StringComparison.InvariantCultureIgnoreCase); - public static bool operator !=(Ref left, string right) => !string.Equals(left?.Id, right, StringComparison.InvariantCultureIgnoreCase); - public static bool operator ==(string left, Ref right) => string.Equals(left, right?.Id, StringComparison.InvariantCultureIgnoreCase); - public static bool operator !=(string left, Ref right) => !string.Equals(left, right?.Id, StringComparison.InvariantCultureIgnoreCase); - - public static implicit operator string(Ref obj) => obj.Id; - public static explicit operator Ref(string obj) => new Ref(obj); } @@ -83,17 +46,4 @@ namespace zero.Core.Entities public string[] Ids { get; set; } = new string[0] { }; } - - - public static class RefExtensions - { - public static Ref Ref(this string str) where T : IZeroIdEntity - { - if (str.IsNullOrEmpty()) - { - return null; - } - return new Ref(str); - } - } } diff --git a/zero.Core/Entities/Translation.cs b/zero.Core/Entities/Translation.cs index 2a995cbd..51428c7d 100644 --- a/zero.Core/Entities/Translation.cs +++ b/zero.Core/Entities/Translation.cs @@ -5,7 +5,7 @@ namespace zero.Core.Entities public class Translation : ZeroEntity, ITranslation { /// - public Ref LanguageId { get; set; } + public string LanguageId { get; set; } /// public string Key { get; set; } diff --git a/zero.Core/Entities/User/User.cs b/zero.Core/Entities/User/User.cs index ae4e13e2..10d2e14e 100644 --- a/zero.Core/Entities/User/User.cs +++ b/zero.Core/Entities/User/User.cs @@ -25,10 +25,10 @@ namespace zero.Core.Entities public string SecurityStamp { get; set; } /// - public Ref AvatarId { get; set; } + public string AvatarId { get; set; } /// - public Ref LanguageId { get; set; } + public string LanguageId { get; set; } @@ -107,12 +107,12 @@ namespace zero.Core.Entities /// /// Avatar image /// - Ref AvatarId { get; set; } + string AvatarId { get; set; } /// /// Backoffice display language /// - Ref LanguageId { get; set; } + string LanguageId { get; set; } diff --git a/zero.Core/Entities/ZeroEntity.cs b/zero.Core/Entities/ZeroEntity.cs index f8c1adf9..f10e9791 100644 --- a/zero.Core/Entities/ZeroEntity.cs +++ b/zero.Core/Entities/ZeroEntity.cs @@ -25,13 +25,13 @@ namespace zero.Core.Entities public bool IsActive { get; set; } /// - public Ref LastModifiedById { get; set; } + public string LastModifiedById { get; set; } /// public DateTimeOffset LastModifiedDate { get; set; } /// - public Ref CreatedById { get; set; } + public string CreatedById { get; set; } /// public DateTimeOffset CreatedDate { get; set; } @@ -67,7 +67,7 @@ namespace zero.Core.Entities /// /// Backoffice user who last modified this content /// - public Ref LastModifiedById { get; set; } + public string LastModifiedById { get; set; } /// /// Date of last modification @@ -77,7 +77,8 @@ namespace zero.Core.Entities /// /// Backoffice user who created this content /// - public Ref CreatedById { get; set; } + [Overwrite] + public string CreatedById { get; set; } /// /// Date of creation diff --git a/zero.Core/Extensions/StringExtensions.cs b/zero.Core/Extensions/StringExtensions.cs index 02655e95..18efe918 100644 --- a/zero.Core/Extensions/StringExtensions.cs +++ b/zero.Core/Extensions/StringExtensions.cs @@ -1,7 +1,6 @@ using System; using System.Globalization; using System.Linq; -using zero.Core.Entities; namespace zero.Core.Extensions { @@ -81,18 +80,6 @@ namespace zero.Core.Extensions return String.IsNullOrWhiteSpace(input); } - - public static bool IsNullOrEmpty(this Ref input) - { - return input == null || String.IsNullOrEmpty(input); - } - - - public static bool IsNullOrWhiteSpace(this Ref input) - { - return input == null || String.IsNullOrWhiteSpace(input); - } - public static string ToCamelCase(this string input) { if (!String.IsNullOrEmpty(input) && input.Length > 1) diff --git a/zero.Core/Extensions/ValidatorExtensions.cs b/zero.Core/Extensions/ValidatorExtensions.cs index 78a72a5f..7b1509bd 100644 --- a/zero.Core/Extensions/ValidatorExtensions.cs +++ b/zero.Core/Extensions/ValidatorExtensions.cs @@ -149,15 +149,6 @@ namespace zero.Core.Extensions } - /// - /// Check if this reference exists and is an entity which can be referenced (appId = shared for shareable entities or appId = current) - /// - public static IRuleBuilderOptions> Exists(this IRuleBuilder ruleBuilder, IBackofficeStore store) where T : IZeroEntity where TRef : IZeroIdEntity - { - return ruleBuilder.Exists(store); - } - - /// /// Check if this reference exists and is an entity which can be referenced (appId = shared for shareable entities or appId = current) /// @@ -177,34 +168,7 @@ namespace zero.Core.Extensions if (typeof(IAppAwareEntity).IsAssignableFrom(typeof(TReference))) { - return model != null && ((IAppAwareEntity)model).InScope(store.AppContext.AppId); - } - - return model != null; - }).WithMessage("@errors.forms.reference_notfound"); - } - - - /// - /// Check if this reference exists and is an entity which can be referenced (appId = shared for shareable entities or appId = current) - /// - public static IRuleBuilderOptions> Exists(this IRuleBuilder> ruleBuilder, IBackofficeStore store) where T : IZeroEntity where TReference : IZeroEntity - { - return ruleBuilder.MustAsync(async (entity, id, context, cancellation) => - { - if (id is null || id.Id.IsNullOrWhiteSpace()) - { - return true; - } - - bool includeShared = typeof(IAppAwareShareableEntity).IsAssignableFrom(typeof(T)); - - using IAsyncDocumentSession session = store.Raven.OpenAsyncSession(); - TReference model = await session.LoadAsync(id.Id); - - if (typeof(IAppAwareEntity).IsAssignableFrom(typeof(TReference))) - { - return model != null && ((IAppAwareEntity)model).InScope(store.AppContext.AppId); + return model != null && ((IAppAwareEntity)model).InScope(entity.AppId); } return model != null; diff --git a/zero.Core/Utils/RefJsonConverter.cs b/zero.Core/Utils/RefJsonConverter.cs index 776cad4c..247d7bb3 100644 --- a/zero.Core/Utils/RefJsonConverter.cs +++ b/zero.Core/Utils/RefJsonConverter.cs @@ -10,12 +10,12 @@ namespace zero.Core.Utils { private readonly Type type; - //private readonly string idProperty; + private readonly string idProperty; public RefJsonConverter() { type = typeof(Ref<>); - //idProperty = nameof(Ref.Id); + idProperty = nameof(Ref.Id); } diff --git a/zero.Core/Validation/LanguageValidator.cs b/zero.Core/Validation/LanguageValidator.cs index f77d4a3f..2a1b9c37 100644 --- a/zero.Core/Validation/LanguageValidator.cs +++ b/zero.Core/Validation/LanguageValidator.cs @@ -15,7 +15,7 @@ namespace zero.Core.Validation RuleFor(x => x.IsDefault).Unique(store).When(x => x.IsDefault).WithMessage("@language.errors.default_unique"); RuleFor(x => x.IsDefault).ExpectAnyUnique(store, expectedValue: true).When(x => !x.IsDefault).WithMessage("@language.errors.needs_default"); RuleFor(x => x.InheritedLanguageId).Must((entity, value) => !entity.Id.Equals(value, StringComparison.InvariantCultureIgnoreCase)).When(x => !x.Id.IsNullOrEmpty()).WithMessage("@language.errors.fallback_invalid"); - RuleFor(x => x.InheritedLanguageId).Equal((Ref)null).When(x => x.IsDefault).WithMessage("@language.errors.default_no_fallback"); + RuleFor(x => x.InheritedLanguageId).Equal((string)null).When(x => x.IsDefault).WithMessage("@language.errors.default_no_fallback"); RuleFor(x => x.InheritedLanguageId).Exists(store); RuleFor(x => x.IsOptional).Equal(false).When(x => x.IsDefault).WithMessage("@language.errors.default_not_optional"); } diff --git a/zero.Debug/Controllers/HomeController.cs b/zero.Debug/Controllers/HomeController.cs index a09ba290..655948d6 100644 --- a/zero.Debug/Controllers/HomeController.cs +++ b/zero.Debug/Controllers/HomeController.cs @@ -77,7 +77,7 @@ namespace zero.Debug.Controllers Text = "What the fuckk", PublishDate = DateTimeOffset.Now.AddDays(3), AppId = app.Id, - ParentId = newsPage.Id.Ref() + ParentId = newsPage.Id }); await session.StoreAsync(new NewsPage() @@ -90,7 +90,7 @@ namespace zero.Debug.Controllers Text = "What the fuckkii", PublishDate = DateTimeOffset.Now.AddDays(-20), AppId = app.Id, - ParentId = newsPage.Id.Ref() + ParentId = newsPage.Id }); await session.StoreAsync(new RedirectPage() @@ -101,7 +101,7 @@ namespace zero.Debug.Controllers IsActive = true, PageTypeAlias = "redirect", AppId = app.Id, - ParentId = newsPage.Id.Ref(), + ParentId = newsPage.Id, Link = "https://brothers.studio" }); diff --git a/zero.Debug/Controllers/MigrationController.cs b/zero.Debug/Controllers/MigrationController.cs index d3855894..abb29202 100644 --- a/zero.Debug/Controllers/MigrationController.cs +++ b/zero.Debug/Controllers/MigrationController.cs @@ -120,7 +120,7 @@ namespace zero.Debug.Controllers { hasChange = true; zeroEntity.CreatedDate = zeroEntity.CreatedDate == default ? DateTimeOffset.Now : zeroEntity.CreatedDate; - zeroEntity.CreatedById = userId.Ref(); + zeroEntity.CreatedById = userId; } if (model is ITranslation && zeroEntity.Name.IsNullOrEmpty()) { @@ -135,7 +135,7 @@ namespace zero.Debug.Controllers if (zeroEntity.LastModifiedById == default) { hasChange = true; - zeroEntity.LastModifiedById = userId.Ref(); + zeroEntity.LastModifiedById = userId; } if (zeroEntity.LastModifiedDate == default) { diff --git a/zero.Debug/Controllers/TestController.cs b/zero.Debug/Controllers/TestController.cs index 4c37e80a..d56ea36b 100644 --- a/zero.Debug/Controllers/TestController.cs +++ b/zero.Debug/Controllers/TestController.cs @@ -116,136 +116,136 @@ namespace zero.Debug.Controllers } - //[HttpGet] - //public async Task AddOrder([FromServices] IOrdersApi ordersApi) - //{ - // OrderAddress address = new OrderAddress() - // { - // Email = "cee@live.at", - // FirstName = "Tobias", - // LastName = "Klika", - // Company = "brothers Klika OG", - // Gender = Gender.Male, - // VatNo = "ATU68334803", - // PhoneNumber = "+43 660 2594892", - // Address = "Laabstraße 9", - // AddressLine1 = "Top 2", - // Zip = "5280", - // City = "Braunau am Inn", - // Country = "Österreich", - // CountryId = "countries.256-A" - // }; + [HttpGet] + public async Task AddOrder([FromServices] IOrdersApi ordersApi) + { + OrderAddress address = new OrderAddress() + { + Email = "cee@live.at", + FirstName = "Tobias", + LastName = "Klika", + Company = "brothers Klika OG", + Gender = Gender.Male, + VatNo = "ATU68334803", + PhoneNumber = "+43 660 2594892", + Address = "Laabstraße 9", + AddressLine1 = "Top 2", + Zip = "5280", + City = "Braunau am Inn", + Country = "Österreich", + CountryId = "countries.256-A" + }; - // OrderAddress shippingAddress = new OrderAddress() - // { - // Email = "cee@live.at", - // FirstName = "Tobias", - // LastName = "Klika", - // Company = "brothers Klika OG", - // Gender = Gender.Male, - // VatNo = "ATU68334803", - // PhoneNumber = "+43 660 2594892", - // Address = "Salzburger Strasse 44", - // Zip = "5280", - // City = "Braunau am Inn", - // Country = "Österreich", - // CountryId = "countries.256-A" - // }; + OrderAddress shippingAddress = new OrderAddress() + { + Email = "cee@live.at", + FirstName = "Tobias", + LastName = "Klika", + Company = "brothers Klika OG", + Gender = Gender.Male, + VatNo = "ATU68334803", + PhoneNumber = "+43 660 2594892", + Address = "Salzburger Strasse 44", + Zip = "5280", + City = "Braunau am Inn", + Country = "Österreich", + CountryId = "countries.256-A" + }; - // Order order = new Order() - // { - // ChannelId = "channels.1-A", - // Name = "23-0002", - // Number = "23-0002", - // LanguageId = "languages.2-A", - // CurrencyId = "currencies.33-A", - // State = OrderState.Completed, - // DetailStateId = "orderDetailStates.3-A", - // IsRequest = false, - // CustomerId = "customers.1-A", - // CustomerNote = "Danke für die Hilfe. Das war wirklich dringend nötig <3", - // AssignedToUserId = "users.1-A", - // Address = address, - // Items = new List() - // { - // new OrderItem() - // { - // Id = IdGenerator.Create(), - // ProductId = "products.1-A", - // VariantId = "4a5ddabc-8158-43f5-90eb-1d115cc062cc", - // Name = "Nike Jersey 2.0", - // Description = "Polyester / XS", - // Sort = 0, - // Quantity = 3, - // Discount = 0, - // Price = 17, - // TaxRate = 20 - // }, - // new OrderItem() - // { - // Id = IdGenerator.Create(), - // ProductId = "products.1-A", - // VariantId = "4a5ddabc-8158-43f5-90eb-1d115cc062cc", - // Name = "Nike Jersey 2.0", - // Description = "Polyester / s", - // Sort = 1, - // Quantity = 1, - // Discount = 5, - // Price = 12, - // TaxRate = 20 - // }, - // new OrderItem() - // { - // Id = IdGenerator.Create(), - // Name = "Flex-Druck", - // Sort = 2, - // Price = 1.99m, - // Quantity = 2, - // TaxRate = 12 - // } - // }, - // Price = 72.98m - // }; + Order order = new Order() + { + ChannelId = "channels.1-A", + Name = "23-0002", + Number = "23-0002", + LanguageId = "languages.2-A", + CurrencyId = "currencies.33-A", + State = OrderState.Completed, + DetailStateId = "orderDetailStates.3-A", + IsRequest = false, + CustomerId = "customers.1-A", + CustomerNote = "Danke für die Hilfe. Das war wirklich dringend nötig <3", + AssignedToUserId = "users.1-A", + Address = address, + Items = new List() + { + new OrderItem() + { + Id = IdGenerator.Create(), + ProductId = "products.1-A", + VariantId = "4a5ddabc-8158-43f5-90eb-1d115cc062cc", + Name = "Nike Jersey 2.0", + Description = "Polyester / XS", + Sort = 0, + Quantity = 3, + Discount = 0, + Price = 17, + TaxRate = 20 + }, + new OrderItem() + { + Id = IdGenerator.Create(), + ProductId = "products.1-A", + VariantId = "4a5ddabc-8158-43f5-90eb-1d115cc062cc", + Name = "Nike Jersey 2.0", + Description = "Polyester / s", + Sort = 1, + Quantity = 1, + Discount = 5, + Price = 12, + TaxRate = 20 + }, + new OrderItem() + { + Id = IdGenerator.Create(), + Name = "Flex-Druck", + Sort = 2, + Price = 1.99m, + Quantity = 2, + TaxRate = 12 + } + }, + Price = 72.98m + }; - // order.Shipping = new OrderShipping() - // { - // Name = "Österreichische Post", - // ShippingOptionId = "shippingOptions.1-A", - // Price = 7.99m, - // Lines = new List() - // { - // new OrderShippingLine() { Key = "Postfach", Value = "7-A" } - // }, - // Address = shippingAddress, - // Deliveries = new List() - // { - // new OrderDelivery() - // { - // CreatedDate = DateTimeOffset.Now, - // TrackingNumber = "1035304005500970252807", - // TrackingUrl = "https://www.post.at/sv/sendungsdetails?snr=1035304005500970252807", - // Description = "Waren sind im Lager 2 (Regal 23)", - // ShipmentDate = DateTimeOffset.Now.AddDays(2), - // Items = new List() - // { - // new OrderDeliveryProduct() { Id = order.Items[0].Id, Quantity = 2 }, - // new OrderDeliveryProduct() { Id = order.Items[1].Id, Quantity = 1 } - // } - // }, - // new OrderDelivery() - // { - // CreatedDate = DateTimeOffset.Now, - // ShipmentDate = DateTimeOffset.Now.AddDays(4), - // Items = new List() - // { - // new OrderDeliveryProduct() { Id = order.Items[0].Id, Quantity = 1 } - // } - // } - // } - // }; + order.Shipping = new OrderShipping() + { + Name = "Österreichische Post", + ShippingOptionId = "shippingOptions.1-A", + Price = 7.99m, + Lines = new List() + { + new OrderShippingLine() { Key = "Postfach", Value = "7-A" } + }, + Address = shippingAddress, + Deliveries = new List() + { + new OrderDelivery() + { + CreatedDate = DateTimeOffset.Now, + TrackingNumber = "1035304005500970252807", + TrackingUrl = "https://www.post.at/sv/sendungsdetails?snr=1035304005500970252807", + Description = "Waren sind im Lager 2 (Regal 23)", + ShipmentDate = DateTimeOffset.Now.AddDays(2), + Items = new List() + { + new OrderDeliveryProduct() { Id = order.Items[0].Id, Quantity = 2 }, + new OrderDeliveryProduct() { Id = order.Items[1].Id, Quantity = 1 } + } + }, + new OrderDelivery() + { + CreatedDate = DateTimeOffset.Now, + ShipmentDate = DateTimeOffset.Now.AddDays(4), + Items = new List() + { + new OrderDeliveryProduct() { Id = order.Items[0].Id, Quantity = 1 } + } + } + } + }; - // return Json(await ordersApi.Save(order)); - //} + return Json(await ordersApi.Save(order)); + } } internal class RouteModel diff --git a/zero.Debug/Sync/LanguageBlueprintHandler.cs b/zero.Debug/Sync/LanguageBlueprintHandler.cs deleted file mode 100644 index 7e247276..00000000 --- a/zero.Debug/Sync/LanguageBlueprintHandler.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Raven.Client.Documents.Session; -using zero.Core.Entities; - -namespace zero.Debug.Sync -{ - public class LanguageBlueprintHandler : BlueprintHandler - { - protected override void OnBlueprintCreate(ILanguage blueprint, ILanguage model) - { - model.Code = blueprint.Code; - model.IsOptional = blueprint.IsOptional; - model.IsDefault = blueprint.IsDefault; - model.InheritedLanguageId = blueprint.InheritedLanguageId; - } - } -} diff --git a/zero.Debug/TestData/TestPluginStartup.cs b/zero.Debug/TestData/TestPluginStartup.cs index d146a6bb..bbecdc5a 100644 --- a/zero.Debug/TestData/TestPluginStartup.cs +++ b/zero.Debug/TestData/TestPluginStartup.cs @@ -24,7 +24,6 @@ namespace zero.TestData { Messages.Subscribe, CountryBlueprintHandler>(); Messages.Subscribe, PropertyBlueprintHandler>(); - Messages.Subscribe, LanguageBlueprintHandler>(); return Task.CompletedTask; } diff --git a/zero.Web.UI/App/pages/settings/languages.vue b/zero.Web.UI/App/pages/settings/languages.vue index f21a61e6..94939cbd 100644 --- a/zero.Web.UI/App/pages/settings/languages.vue +++ b/zero.Web.UI/App/pages/settings/languages.vue @@ -2,7 +2,7 @@
- +
diff --git a/zero.Web/Controllers/PagesController.cs b/zero.Web/Controllers/PagesController.cs index 54c2e095..1e7a3707 100644 --- a/zero.Web/Controllers/PagesController.cs +++ b/zero.Web/Controllers/PagesController.cs @@ -48,7 +48,7 @@ namespace zero.Web.Controllers IPage model = Activator.CreateInstance(pageType.ContentType) as IPage; model.PageTypeAlias = type; - model.ParentId = parent.Ref(); + model.ParentId = parent; return Edit(model); }