private async void SaveCommandExecuted() { IsBusy = true; if (_product.Product.ProductType.Type == "Membership") { if (IsEdit && Product.Product.ProductOptionID != null) { Product.Product.ProductOptionID = null; } if (Product.EventTypes.Any()) { var productEventTypes = await _adminDataUnit.ProductEventTypesRepository.GetAllAsync(x => x.ProductID == Product.Product.ID); foreach (var productEventType in productEventTypes) { _adminDataUnit.ProductEventTypesRepository.Delete(productEventType); } Product.EventTypes = new ObservableCollection <EventTypeModel>(); Product.RefreshEventTypesAbbreviations(); } if (IsChargeType) { _product.Product.ComponentType = false; } else if (IsLevyType) { _product.Product.ComponentType = true; } } else { if (Product.EventTypes.Any()) { foreach (var eventType in Product.EventTypes) { var typeAlreadyExist = Product.Product.ProductEventTypes.Where(x => x.EventTypeID == eventType.EventType.ID).FirstOrDefault(); if (typeAlreadyExist == null) { var productType = new ProductEventType() { ID = Guid.NewGuid(), EventTypeID = eventType.EventType.ID, ProductID = _product.Product.ID }; _adminDataUnit.ProductEventTypesRepository.Add(productType); } } } var typesToDelete = Product.Product.ProductEventTypes.Where(x => !(Product.EventTypes.Select(eventType => eventType.EventType).Contains(x.EventType))).ToList(); _adminDataUnit.ProductEventTypesRepository.Delete(typesToDelete); } if (!IsEdit) { Product.Product.PluID = Convert.ToInt32(StartingPLUTillProductsSetting.Value); StartingPLUTillProductsSetting.Value = Convert.ToString(Convert.ToInt32(StartingPLUTillProductsSetting.Value) + 1); _adminDataUnit.ProductsRepository.Add(Product.Product); } await _adminDataUnit.SaveChanges(); SendDataToAllActiveTills(); }
public ProductEvent(ProductEventType eventType, Product product) { this.EventType = eventType; this.Product = product; }