/// <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); }
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); }
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; }
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); }
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); }