/// <summary> /// Patch CatalogBase type /// </summary> /// <param name="source"></param> /// <param name="target"></param> public static void Patch(this LineItemEntity source, LineItemEntity target) { if (target == null) throw new ArgumentNullException("target"); var patchInjection = new PatchInjection<LineItemEntity>(x => x.Quantity, x => x.SalePrice, x => x.PlacedPrice, x => x.ListPrice, x => x.TaxIncluded, x => x.TaxTotal); target.InjectFrom(patchInjection, source); if (!source.TaxDetails.IsNullCollection()) { var taxDetailComparer = AnonymousComparer.Create((TaxDetailEntity x) => x.Name); source.TaxDetails.Patch(target.TaxDetails, taxDetailComparer, (sourceTaxDetail, targetTaxDetail) => sourceTaxDetail.Patch(targetTaxDetail)); } }
public static LineItemEntity ToDataModel(this LineItem lineItem) { if (lineItem == null) throw new ArgumentNullException("lineItem"); var retVal = new LineItemEntity(); retVal.InjectFrom(lineItem); retVal.Currency = lineItem.Currency.ToString(); if (lineItem.TaxDetails != null) { retVal.TaxDetails = new ObservableCollection<TaxDetailEntity>(); retVal.TaxDetails.AddRange(lineItem.TaxDetails.Select(x => x.ToDataModel())); } return retVal; }
public static LineItemEntity ToDataModel(this LineItem lineItem, PrimaryKeyResolvingMap pkMap) { if (lineItem == null) throw new ArgumentNullException("lineItem"); var retVal = new LineItemEntity(); pkMap.AddPair(lineItem, retVal); retVal.InjectFrom(lineItem); retVal.Currency = lineItem.Currency.ToString(); if (lineItem.TaxDetails != null) { retVal.TaxDetails = new ObservableCollection<TaxDetailEntity>(); retVal.TaxDetails.AddRange(lineItem.TaxDetails.Select(x => x.ToDataModel())); } if (lineItem.Discounts != null) { retVal.Discounts = new ObservableCollection<DiscountEntity>(); retVal.Discounts.AddRange(lineItem.Discounts.Select(x => x.ToDataModel(pkMap))); } return retVal; }