/// <summary>
		/// Converting to model type
		/// </summary>
		/// <param name="catalogBase"></param>
		/// <returns></returns>
		public static coreModel.PricelistAssignment ToCoreModel(this dataModel.PricelistAssignment dbEntity)
		{
			if (dbEntity == null)
				throw new ArgumentNullException("dbEntity");

			var retVal = new coreModel.PricelistAssignment();
			retVal.InjectFrom(dbEntity);
			return retVal;

		}
        /// <summary>
        /// Converting to model type
        /// </summary>
        /// <param name="catalogBase"></param>
        /// <returns></returns>
        public static coreModel.PricelistAssignment ToCoreModel(this dataModel.PricelistAssignment dbEntity)
        {
            if (dbEntity == null)
            {
                throw new ArgumentNullException("dbEntity");
            }

            var retVal = new coreModel.PricelistAssignment();

            retVal.InjectFrom(dbEntity);
            return(retVal);
        }
        public static dataModel.PricelistAssignment ToDataModel(this coreModel.PricelistAssignment assignment)
        {
            if (assignment == null)
            {
                throw new ArgumentNullException("assignment");
            }

            var retVal = new dataModel.PricelistAssignment();

            retVal.InjectFrom(assignment);

            return(retVal);
        }
Exemple #4
0
        public coreModel.PricelistAssignment CreatePriceListAssignment(coreModel.PricelistAssignment assignment)
        {
            var entity = assignment.ToDataModel();

            using (var repository = _repositoryFactory())
            {
                repository.Add(entity);
                CommitChanges(repository);
            }

            var retVal = GetPricelistAssignmentById(entity.Id);

            return(retVal);
        }
Exemple #5
0
        private void TryToCreateCatalogAssignment(dataModel.Price price, IPricingRepository repository)
        {
            //need create price list assignment to catalog if it not exist
            var product = _productService.GetById(price.ProductId, Domain.Catalog.Model.ItemResponseGroup.ItemInfo);

            if (!repository.PricelistAssignments.Where(x => x.PricelistId == price.PricelistId && x.CatalogId == product.CatalogId).Any())
            {
                var assignment = new coreModel.PricelistAssignment
                {
                    CatalogId   = product.CatalogId,
                    Name        = product.Catalog.Name + "-" + price.Pricelist.Name,
                    PricelistId = price.Pricelist.Id
                };
                CreatePriceListAssignment(assignment);
            }
        }
		public static coreModel.PricelistAssignment ToCoreModel(this webModel.PricelistAssignment assignment)
		{
			var retVal = new coreModel.PricelistAssignment();
			retVal.InjectFrom(assignment);

			var conditionExpression = assignment.DynamicExpression.GetConditionExpression();
			retVal.ConditionExpression = SerializationUtil.SerializeExpression(conditionExpression);

			//Clear availableElements in expression (for decrease size)
			assignment.DynamicExpression.AvailableChildren = null;
			var allBlocks = ((DynamicExpression)assignment.DynamicExpression).Traverse(x => x.Children);
			foreach (var block in allBlocks)
			{
				block.AvailableChildren = null;
			}
			retVal.PredicateVisualTreeSerialized = JsonConvert.SerializeObject(assignment.DynamicExpression);

			return retVal;
		}
Exemple #7
0
        public static coreModel.PricelistAssignment ToCoreModel(this webModel.PricelistAssignment assignment)
        {
            var retVal = new coreModel.PricelistAssignment();

            retVal.InjectFrom(assignment);

            var conditionExpression = assignment.DynamicExpression.GetConditionExpression();

            retVal.ConditionExpression = SerializationUtil.SerializeExpression(conditionExpression);

            //Clear availableElements in expression (for decrease size)
            assignment.DynamicExpression.AvailableChildren = null;
            var allBlocks = ((DynamicExpression)assignment.DynamicExpression).Traverse(x => x.Children);

            foreach (var block in allBlocks)
            {
                block.AvailableChildren = null;
            }
            retVal.PredicateVisualTreeSerialized = JsonConvert.SerializeObject(assignment.DynamicExpression);

            return(retVal);
        }
Exemple #8
0
        public static webModel.PricelistAssignment ToWebModel(this coreModel.PricelistAssignment assignment, coreCatalogModel.Catalog[] catalogs = null, ConditionExpressionTree etalonEpressionTree = null)
        {
            var retVal = new webModel.PricelistAssignment();

            retVal.InjectFrom(assignment);

            if (catalogs != null)
            {
                var catalog = catalogs.FirstOrDefault(x => x.Id == assignment.CatalogId);
                if (catalog != null)
                {
                    retVal.CatalogName = catalog.Name;
                }
            }

            retVal.DynamicExpression = etalonEpressionTree;
            if (!String.IsNullOrEmpty(assignment.PredicateVisualTreeSerialized))
            {
                retVal.DynamicExpression = JsonConvert.DeserializeObject <ConditionExpressionTree>(assignment.PredicateVisualTreeSerialized);
                if (etalonEpressionTree != null)
                {
                    //Copy available elements from etalon because they not persisted
                    var sourceBlocks = ((DynamicExpression)etalonEpressionTree).Traverse(x => x.Children);
                    var targetBlocks = ((DynamicExpression)retVal.DynamicExpression).Traverse(x => x.Children);
                    foreach (var sourceBlock in sourceBlocks)
                    {
                        foreach (var targetBlock in targetBlocks.Where(x => x.Id == sourceBlock.Id))
                        {
                            targetBlock.AvailableChildren = sourceBlock.AvailableChildren;
                        }
                    }
                    //copy available elements from etalon
                    retVal.DynamicExpression.AvailableChildren = etalonEpressionTree.AvailableChildren;
                }
            }
            return(retVal);
        }
		private void TryToCreateCatalogAssignment(dataModel.Price price, IPricingRepository repository)
		{
			//need create price list assignment to catalog if it not exist
			var product = _productService.GetById(price.ProductId, Domain.Catalog.Model.ItemResponseGroup.ItemInfo);
			if (!repository.PricelistAssignments.Where(x => x.PricelistId == price.PricelistId && x.CatalogId == product.CatalogId).Any())
			{
				var assignment = new coreModel.PricelistAssignment
				{
					CatalogId = product.CatalogId,
					Name = product.Catalog.Name + "-" + price.Pricelist.Name,
					PricelistId = price.Pricelist.Id
				};
				CreatePriceListAssignment(assignment);
			}
		}