private void InitializeGatewayValuesForSave() { var RemovedItems = InnerItem.ShippingGatewayPropertyValues.Where( x => PropertyValues.All(x1 => x1.InnerItem.Name != x.Name)).ToList(); foreach (var removedItem in RemovedItems) { InnerItem.ShippingGatewayPropertyValues.Remove(removedItem); } if (PropertyValues == null) { return; } foreach (var currentItem in PropertyValues) { var item = InnerItem.ShippingGatewayPropertyValues.FirstOrDefault(x => x.Name == currentItem.InnerItem.Name); if (item == null) { item = EntityFactory.CreateEntity <ShippingGatewayPropertyValue>(); InnerItem.ShippingGatewayPropertyValues.Add(item); } item.InjectFrom(currentItem.InnerItem); } if (!IsWizardMode) { Repository.UnitOfWork.Commit(); } }
public void InitializeGatewayValuesForSave() { var RemovedItems = InnerItem.PaymentMethodPropertyValues.Where( x => PropertyValues.All(x1 => x1.InnerItem.Id != x.Name)).ToList(); foreach (var removedItem in RemovedItems) { InnerItem.PaymentMethodPropertyValues.Remove(removedItem); Repository.Attach(removedItem); Repository.Remove(removedItem); } foreach (var currentItem in PropertyValues) { var item = InnerItem.PaymentMethodPropertyValues.FirstOrDefault(x => x.Name == currentItem.InnerItem.Id); if (item == null) { item = EntityFactory.CreateEntity <PaymentMethodPropertyValue>(); InnerItem.PaymentMethodPropertyValues.Add(item); } item.InjectFrom(currentItem.InnerItem); } if (!IsWizardMode) { Repository.UnitOfWork.Commit(); } }