public void EditDish(DishModelDetailsInfo dish) { var dishDb = Database.Dish.QueryToTable.FirstOrDefault(x => x.id == dish.ID); if (dishDb == null) { return; } dishDb.Name = dish.Name; dishDb.Description = dish.Description; dishDb.Energy = dish.Energy; dishDb.Ingridients = dish.Ingridients; dishDb.Price = dish.Price; dishDb.Weight = dish.Weight; var oldImages = Database.DishImage.QueryToTable.Where(x => x.Dish.id == dishDb.id); foreach (var oldImage in oldImages) { Database.DishImage.Delete(oldImage); } foreach (var imgPath in dish.ImagePath) { var imgRow = new DishImage { Dish = dishDb, Path = imgPath, }; dishDb.Images.Add(imgRow); } Database.Dish.Update(dishDb); Database.Save(); }
public void CreateDish(DishModelDetailsInfo dish) { var toDb = Mapper.Map <DishModelDetailsInfo, Dish>(dish); toDb.Images = new List <DishImage>(); //add images to dish foreach (var imgPath in dish.ImagePath) { var imgRow = new DishImage { Dish = toDb, Path = imgPath, }; toDb.Images.Add(imgRow); } //add dish to database Database.Dish.Add(toDb); Database.Save(); }
public static async Task <bool> AddImage(int dishId, byte[] imageArray) { var dishImage = new DishImage() { Dishimage = dishId, ImageArray = imageArray }; var httpClient = new HttpClient(); var json = JsonConvert.SerializeObject(dishImage); var content = new StringContent(json, Encoding.UTF8, "application/json"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", Preferences.Get("accessToken", string.Empty)); var response = await httpClient.PostAsync("https://chefapp2727.azurewebsites.net/api/Images", content); if (!response.IsSuccessStatusCode) { return(false); } return(true); }
public ActionResult Upload(HttpPostedFileBase[] files) { bool allValid = true; string inValidFiles = ""; if (files[0] != null) { if (files.Length <= 4) { foreach (var file in files) { if (!ValidateFile(file)) { allValid = false; inValidFiles += ", " + file.FileName; } } if (allValid) { foreach (var file in files) { try { SaveFileToDisk(file); } catch (System.Exception) { ModelState.AddModelError("FileName", "Sorry an error occurred saving the files to disk, please try again"); } } } //else add an error listing out the invalid files else { ModelState.AddModelError("FileName", "All files must be gif, png, jpeg or jpg and less than 2MB in size.The following files" + inValidFiles + " are not valid"); } } //the user has entered more than 10 files else { ModelState.AddModelError("FileName", "Please only upload up to ten files at a time"); } } else { //if the user has not entered a file return an error message ModelState.AddModelError("FileName", "Please choose a file"); } if (ModelState.IsValid) { bool duplicates = false; bool otherDbError = false; string duplicateFiles = ""; foreach (var file in files) { //try and save each file var image = new DishImage { FileName = file.FileName }; imageRepository.SaveImage(image); //if there is an exception check if it is caused by a duplicate file } //add a list of duplicate files to the error message if (duplicates) { ModelState.AddModelError("FileName", "All files uploaded except the files" + duplicateFiles + ", which already exist in the system." + " Please delete them and try again if you wish to re-add them"); return(View()); } else if (otherDbError) { ModelState.AddModelError("FileName", "Sorry an error has occurred saving to the database, please try again"); return(View()); } return(RedirectToAction("Index")); } return(View()); }
public async Task <ActionResult <Dish> > CreateDish([FromForm] DishDto dishDto) { try { var dish = new Dish { Name = dishDto.Name, Description = dishDto.Description, DishCategoryId = dishDto.DishCategoryId, Price = dishDto.Price }; await _unitOfWork.DishRepository.InsertTask(dish); await _unitOfWork.Commit(); if (dishDto.Image != null) { var imageToRemove = await _unitOfWork.DishImageRepository.GetByDishId(dish.Id); if (imageToRemove != null) { await _unitOfWork.DishImageRepository.DeleteTask(imageToRemove.Id); } var dishImage = new DishImage { DishId = dish.Id }; using (var ms = new MemoryStream()) { dishDto.Image.CopyTo(ms); dishImage.Image = ms.ToArray(); } await _unitOfWork.DishImageRepository.InsertTask(dishImage); await _unitOfWork.Commit(); } if (TryValidateModel(!string.IsNullOrEmpty(dishDto.DishSupplies))) { var dishId = await _unitOfWork.DishRepository.GetMaxId(); var dishDetailsJson = JsonConvert.DeserializeObject <List <DishSupply> >(dishDto.DishSupplies);; var dishSupplies = dishDetailsJson.Select(x => new DishSupply { DishId = dishId, SupplyId = x.SupplyId, Comment = x.Comment, Qty = x.Qty }).ToList(); await _unitOfWork.DishSuppliesRepository.InsertRangeTask(dishSupplies); } await _unitOfWork.Commit(); return(dish); } catch (Exception e) { return(BadRequest(e)); } }
public async Task <ActionResult <Dish> > UpdateDish([FromForm] DishDto dish) { try { if (dish == null) { return(NotFound()); } var dsh = new Dish { Id = dish.Id, Description = dish.Description, Price = dish.Price, Name = dish.Name, DishCategoryId = dish.DishCategoryId }; _unitOfWork.DishRepository.Update(dsh); await _unitOfWork.Commit(); if (dish.Image != null) { var imageToRemove = await _unitOfWork.DishImageRepository.GetByDishId(dish.Id); if (imageToRemove != null) { await _unitOfWork.DishImageRepository.DeleteTask(imageToRemove.Id); } var dishImage = new DishImage { DishId = dish.Id }; using (var ms = new MemoryStream()) { dish.Image.CopyTo(ms); dishImage.Image = ms.ToArray(); } await _unitOfWork.DishImageRepository.InsertTask(dishImage); await _unitOfWork.Commit(); } var dishDetailsJson = JsonConvert.DeserializeObject <List <DishSupply> >(dish.DishSupplies);; var dishDetails = dishDetailsJson.Select(x => new DishSupply { Id = x.Id, DishId = x.DishId, Qty = x.Qty, Comment = x.Comment, SupplyId = x.SupplyId }).ToList(); var dishDetailsDb = await _unitOfWork.DishSuppliesRepository.GetByDishIdNoTracking(dish.Id); if (dishDetailsDb.Count >= dishDetails.Count) { var removeDetail = dishDetailsDb.Where(p => !dishDetails.Any(p2 => p2.Id == p.Id)).ToList(); _unitOfWork.DishSuppliesRepository.DeleteRange(removeDetail); await _unitOfWork.Commit(); } _unitOfWork.DishSuppliesRepository.UpdateRange(dishDetails); await _unitOfWork.Commit(); } catch (Exception e) { return(BadRequest(e)); } return(Ok(dish)); }
public void SaveImage(DishImage image) { _context.DishImages.Add(image); _context.SaveChanges(); }