protected override async Task<bool> Save() { var dish = new Dish(); dish.Id = Id; dish.DishGroup = SelecteDishGroup; dish.DishGroupId = SelecteDishGroup.Id; dish.Name = Name; dish.Price = Price; DishImage image = null; if (_imageWasChanged) { image = new DishImage(); image.Image = GetImage(); } else if (_dish?.DishImageId != null) { image = new DishImage(); image.Id = _dish.DishImageId.Value; } List<DishIngredient> ingredients = null; if (DishIngredients.Any()) { ingredients = DishIngredients.Select(t => new DishIngredient { Id = t.Id, DishId = Id, IngredientId = t.IngredientId, Weight = t.Weight }).ToList(); } var result = await Repository.SaveDish(dish, image, ingredients); Id = dish.Id; if (result) { MessageBox.Show("Успешно сохранено", "Сохранение"); } return result; }
private void SetData(List<IngredientPrice> ingredients, DishImage image, List<DishIngredientInfo> dishIngredients ) { Ingredients = ingredients == null ? new ObservableCollection<IngredientPrice>() : new ObservableCollection<IngredientPrice>(ingredients); if (image?.Image != null) { Image = LoadImage(image.Image); } if (dishIngredients != null && dishIngredients.Any()) { if (ingredients != null) { foreach (var dishIngredientInfo in dishIngredients) { dishIngredientInfo.Ingredient = ingredients.FirstOrDefault(t => t.Id == dishIngredientInfo.IngredientId); } } DishIngredients = new ObservableCollection<DishIngredientInfo>(dishIngredients); } else { DishIngredients = new ObservableCollection<DishIngredientInfo>(); } OnPropertyChanged(nameof(ResultCost)); }