From c9df9333f876c85ce143951e647abb58dc5d7f63 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Fri, 16 Jun 2023 17:28:24 +0200 Subject: [PATCH] add steps to numbers; remove constants --- zero/Configuration/Constants.cs | 21 --------------------- zero/Extensions/ResultExtensions.cs | 2 +- zero/Identity/ZeroUserStore(TUser).cs | 6 ------ zero/Numbers/Number.cs | 5 +++++ zero/Numbers/NumberOptions.cs | 2 ++ zero/Numbers/NumberValidator.cs | 8 ++------ zero/Numbers/Numbers.cs | 10 ++++++++-- 7 files changed, 18 insertions(+), 36 deletions(-) delete mode 100644 zero/Configuration/Constants.cs diff --git a/zero/Configuration/Constants.cs b/zero/Configuration/Constants.cs deleted file mode 100644 index 96d42cbc..00000000 --- a/zero/Configuration/Constants.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace zero.Configuration; - -public static partial class Constants -{ - public const string ErrorFieldNone = "__zero_no_field"; - - public static partial class Auth - { - public const string SystemUser = "system"; - public const string DefaultScheme = "zeroScheme"; - public const string BackofficeDisplayName = "Zero Backoffice"; - public const string BackofficeScheme = "zeroBackoffice"; - public const string BackofficeCookieName = "zero.be.session"; - public const string DefaultCookieName = "zero.session"; - } - - public static partial class Database - { - public const string ReservationPrefix = "zero."; - } -} diff --git a/zero/Extensions/ResultExtensions.cs b/zero/Extensions/ResultExtensions.cs index d726b0ab..2de2c147 100644 --- a/zero/Extensions/ResultExtensions.cs +++ b/zero/Extensions/ResultExtensions.cs @@ -31,7 +31,7 @@ public static class ResultExtensions public static Result AddError(this Result origin, string message) { origin.IsSuccess = false; - origin.Errors.Add(new(Constants.ErrorFieldNone, message)); + origin.Errors.Add(new("__zero_no_field", message)); return origin; } diff --git a/zero/Identity/ZeroUserStore(TUser).cs b/zero/Identity/ZeroUserStore(TUser).cs index 5bd3f09c..a70abc7d 100644 --- a/zero/Identity/ZeroUserStore(TUser).cs +++ b/zero/Identity/ZeroUserStore(TUser).cs @@ -45,12 +45,6 @@ public partial class ZeroUserStore : return IdentityResult.Failed(errors); } - /// - /// Get the Raven compare/exchange key for this user. - /// This should be unique within the store, otherwise you can't create users with the same email in different stores. - /// - protected virtual string GetReservationKey(TUser user) => Constants.Database.ReservationPrefix + typeof(TUser) + ':' + user.Email; - /// /// Whether an email is already reserved /// diff --git a/zero/Numbers/Number.cs b/zero/Numbers/Number.cs index 14df7200..f63bdcce 100644 --- a/zero/Numbers/Number.cs +++ b/zero/Numbers/Number.cs @@ -30,6 +30,11 @@ public class Number : ZeroEntity /// public int MinLength { get; set; } = 1; + /// + /// How far to increase + /// + public int Step { get; set; } = 1; + /// /// Store current counters /// diff --git a/zero/Numbers/NumberOptions.cs b/zero/Numbers/NumberOptions.cs index b11ab523..bf6b70c8 100644 --- a/zero/Numbers/NumberOptions.cs +++ b/zero/Numbers/NumberOptions.cs @@ -12,4 +12,6 @@ public class NumberOptionsItem public long StartNumber { get; set; } = 1; public int MinLength { get; set; } = 1; + + public int Step { get; set; } = 1; } diff --git a/zero/Numbers/NumberValidator.cs b/zero/Numbers/NumberValidator.cs index 9553b9ff..18bed326 100644 --- a/zero/Numbers/NumberValidator.cs +++ b/zero/Numbers/NumberValidator.cs @@ -6,14 +6,10 @@ public class NumberValidator : ZeroValidator { public NumberValidator() { - //if (ctx.Context == null) - //{ - // throw new ArgumentNullException("ctx.Context", "NumberValidator requires access to "); - //} - RuleFor(x => x.Template).NotEmpty().Length(2, 60); - RuleFor(x => x.Template).Must(x => x != null && x.Contains("{number}")).WithMessage("@shop.number.errors.invalid_template"); + RuleFor(x => x.Template).Must(x => x != null && x.Contains("{number}")); RuleFor(x => x.StartNumber).GreaterThanOrEqualTo(0); RuleFor(x => x.MinLength).ExclusiveBetween(1, 32); + RuleFor(x => x.Step).GreaterThanOrEqualTo(1); } } \ No newline at end of file diff --git a/zero/Numbers/Numbers.cs b/zero/Numbers/Numbers.cs index 06c450d5..08677811 100644 --- a/zero/Numbers/Numbers.cs +++ b/zero/Numbers/Numbers.cs @@ -40,7 +40,7 @@ public class Numbers : INumbers // calculate new value bool hasValue = counter.Count != 0; long oldValue = hasValue ? counter.Count : number.StartNumber; - long newValue = oldValue + (hasValue ? 1 : 0); + long newValue = oldValue + (hasValue ? number.Step : 0); // increment the value and store it in database if (store) @@ -176,7 +176,8 @@ public class Numbers : INumbers Id = id, Template = options.Template, StartNumber = options.StartNumber, - MinLength = options.MinLength + MinLength = options.MinLength, + Step = options.Step }; await Db.Create(number); @@ -200,6 +201,11 @@ public class Numbers : INumbers number.MinLength = options.MinLength; changed = true; } + if (!number.Step.Equals(options.Step)) + { + number.Step = options.Step; + changed = true; + } if (changed) {