public virtual CustomerSegmentEntity FromModel(CustomerSegment customerSegment, PrimaryKeyResolvingMap pkMap)
        {
            if (customerSegment == null)
            {
                throw new ArgumentNullException(nameof(customerSegment));
            }

            pkMap.AddPair(customerSegment, this);

            Id           = customerSegment.Id;
            CreatedBy    = customerSegment.CreatedBy;
            CreatedDate  = customerSegment.CreatedDate;
            ModifiedBy   = customerSegment.ModifiedBy;
            ModifiedDate = customerSegment.ModifiedDate;

            Name        = customerSegment.Name;
            Description = customerSegment.Description;
            UserGroup   = customerSegment.UserGroup;
            IsActive    = customerSegment.IsActive;
            StartDate   = customerSegment.StartDate;
            EndDate     = customerSegment.EndDate;

            if (customerSegment.ExpressionTree != null)
            {
                SerializedExpressionTree = JsonConvert.SerializeObject(customerSegment.ExpressionTree, new CustomerSegmentConditionJsonConverter(doNotSerializeAvailCondition: true));
            }

            return(this);
        }
        public virtual CustomerSegment ToModel(CustomerSegment customerSegment)
        {
            if (customerSegment == null)
            {
                throw new ArgumentNullException(nameof(customerSegment));
            }

            customerSegment.Id           = Id;
            customerSegment.CreatedBy    = CreatedBy;
            customerSegment.CreatedDate  = CreatedDate;
            customerSegment.ModifiedBy   = ModifiedBy;
            customerSegment.ModifiedDate = ModifiedDate;

            customerSegment.Name        = Name;
            customerSegment.Description = Description;
            customerSegment.UserGroup   = UserGroup;
            customerSegment.IsActive    = IsActive;
            customerSegment.StartDate   = StartDate;
            customerSegment.EndDate     = EndDate;

            customerSegment.ExpressionTree = AbstractTypeFactory <CustomerSegmentTree> .TryCreateInstance();

            if (SerializedExpressionTree != null)
            {
                customerSegment.ExpressionTree = JsonConvert.DeserializeObject <CustomerSegmentTree>(SerializedExpressionTree, new CustomerSegmentConditionJsonConverter());
            }

            return(customerSegment);
        }
        public static void ExpireEntity(CustomerSegment customerSegment)
        {
            if (customerSegment == null)
            {
                throw new ArgumentNullException(nameof(customerSegment));
            }

            ExpireTokenForKey(customerSegment.Id);
        }
        public async Task <ActionResult <CustomerSegment[]> > SaveCustomerSegments([FromBody] CustomerSegment customerSegment)
        {
            if (customerSegment != null)
            {
                if (customerSegment.IsTransient() && !await CanAddNewSegment())
                {
                    return(GetAddNewSegmenErrorResult());
                }
                else if (customerSegment.IsActive && !await CanSetSegmentActive())
                {
                    return(GetSetIsActiveErrorResult());
                }

                await _customerSegmentService.SaveChangesAsync(new[] { customerSegment });
            }

            return(Ok(customerSegment));
        }
Esempio n. 5
0
        public void CalculateForeignCurrencyConversionWhenCustomerSegmentIsPrivateTest(
            int amount,
            decimal foreignCurrencyConversionRate,
            CustomerSegment customerSegment
            )
        {
            var exchangeRatePerSegment = ExchangeRatePerSegmentBuilder.ExchangeRatePerSegment;
            var exchangeRate           = new ExchangeRate(
                amount,
                foreignCurrencyConversionRate,
                customerSegment,
                exchangeRatePerSegment
                );
            var calculate = exchangeRate.CalculateForeignCurrencyConversion();

            Assert.Equal(
                calculate,
                (amount * foreignCurrencyConversionRate) * (1 + exchangeRatePerSegment.Private)
                );
        }