public IReadOnlyList <string> CanAddProductOption(ProductOption productOption, int quantity = 1)
        {
            List <string> errors = new List <string>();

            if (quantity <= 0)
            {
                errors.Add(ValidationMessage.MustBeGreater("Product option quantity", "0"));
            }
            else if (productOption == null)
            {
                errors.Add(ValidationMessage.MustSpecify("product option"));
            }
            else
            {
                if (productOption.Id == 0)
                {
                    errors.Add(ValidationMessage.MustSpecify("product option id"));
                }

                if (IncludedProductOptions.FirstOrDefault(x => x.ProductOptionId == productOption.Id) != null)
                {
                    errors.Add(ValidationMessage.AlreadyExists("product option"));
                }
            }

            return(errors);
        }
        public IReadOnlyList <string> CanAddAdvancePriceItem(Price price, ProlongationPeriod period)
        {
            List <string> errors = new List <string>();

            if (price == null)
            {
                errors.Add(ValidationMessage.MustSpecify("price"));
            }

            if (period == null)
            {
                errors.Add(ValidationMessage.MustSpecify("period"));
            }
            else
            {
                if (price != null && AdvancePrices.FirstOrDefault(x => x.Period == period &&
                                                                  x.Price.Currency == price.Currency) !=
                    null)
                {
                    errors.Add(ValidationMessage.AlreadyExists("prepay price for specified period"));
                }
            }

            return(errors);
        }
        public IReadOnlyList <string> CanAddProduct(Product product, int relativeWeight = 1)
        {
            List <string> errors = new List <string>();

            if (product == null)
            {
                errors.Add(ValidationMessage.MustSpecify("product"));
            }
            else
            {
                if (product.Id == 0)
                {
                    errors.Add(ValidationMessage.MustSpecify("product id"));
                }
                else if (IncludedProducts.FirstOrDefault(x => x.ProductId == product.Id) != null)
                {
                    errors.Add(ValidationMessage.AlreadyExists("product"));
                }
            }

            if (relativeWeight < 0)
            {
                errors.Add(ValidationMessage.Incorrect("relative weight"));
            }

            return(errors);
        }
Exemple #4
0
        public void AddEnumValue(string valueCode, string valueName)
        {
            if (_enumValues.Any(x => x.Code == valueCode))
            {
                throw new InvariantViolationException(ValidationMessage.AlreadyExists($"'{valueCode}' value"));
            }

            _enumValues.Add(new SettingEnumValue(valueCode, valueName));
        }
        public void AddApplicationSettingPreset(ApplicationSettingPreset applicationSettingPreset)
        {
            if (_applicationSettingPresets.Any(x => x.ApplicationSettingId == applicationSettingPreset.ApplicationSettingId))
            {
                throw new InvariantViolationException(
                          ValidationMessage.AlreadyExists($"Application setting [id:{applicationSettingPreset.ApplicationSettingId}]"));
            }

            _applicationSettingPresets.Add(applicationSettingPreset);
        }
        public void AddBillingSettingPreset(BillingSettingPreset billingSettingPreset)
        {
            if (_billingSettingPresets.Any(x => x.BillingSettingId == billingSettingPreset.BillingSettingId))
            {
                throw new InvariantViolationException(
                          ValidationMessage.AlreadyExists($"Billing setting [id:{billingSettingPreset.BillingSettingId}]"));
            }

            _billingSettingPresets.Add(billingSettingPreset);
        }
Exemple #7
0
        public void AddApplicationSettingSet(int applicationSettingId, string value)
        {
            if (_applicationSettingSets.Any(x => x.ApplicationSettingId == applicationSettingId))
            {
                throw new InvariantViolationException(
                          ValidationMessage.AlreadyExists($"Application setting [id:{applicationSettingId}]"));
            }

            _applicationSettingSets.Add(new ApplicationSettingSet(applicationSettingId, value));
        }
Exemple #8
0
        public void AddBillingSettingSet(int billingSettingId, string value)
        {
            if (_billingSettingSets.Any(x => x.BillingSettingId == billingSettingId))
            {
                throw new InvariantViolationException(
                          ValidationMessage.AlreadyExists($"Billing setting [id:{billingSettingId}]"));
            }

            _billingSettingSets.Add(new BillingSettingSet(billingSettingId, value));
        }
        public IReadOnlyList <string> CanAddContractKind(ContractKind contractKind)
        {
            List <string> errors = new List <string>();

            if (contractKind == null)
            {
                errors.Add(ValidationMessage.MustSpecify("product option"));
            }
            else
            {
                if (contractKind.Id == 0)
                {
                    errors.Add(ValidationMessage.MustSpecify("product option id"));
                }

                if (ContractKindBindings.FirstOrDefault(x => x.ContractKindId == contractKind.Id) != null)
                {
                    errors.Add(ValidationMessage.AlreadyExists("product option"));
                }
            }

            return(errors);
        }