public async Task<IActionResult> Manage(ProductEditionViewModel vmProduct) { if (ModelState.IsValid) { //Set Labels vmProduct.Product.SetLabels(vmProduct.SelectedLabels); //Set Product familly (si ça retourne null c'est que la famille selectionnée n'existe pas, alors on est dans la merde) vmProduct.Product.Familly = _context.ProductFamillys.FirstOrDefault(x => x.FamillyName == vmProduct.FamillyName); //Set Producer (si ça retourne null, c'est que c'est pas un producteur qui est logger, alors on est dans la merde) var appUser = await GetCurrentUserAsync(); vmProduct.Product.Producer = _context.Producers.FirstOrDefault(x => x.Email == appUser.Email); //On s'occupe des images du produit int cpt = 0; foreach (IFormFile uploadFile in new List<IFormFile>() { vmProduct.UploadFile1, vmProduct.UploadFile2, vmProduct.UploadFile3 }) { if (uploadFile != null) { //Image uploading string fileName = await Configurations.UploadAndResizeImageFile(_environment, uploadFile, Configurations.ProductsStockagePath); if(!vmProduct.IsNew && vmProduct.Product.Pictures.Count > cpt) { //Replace vmProduct.Product.Pictures[cpt] = fileName; } else { //Add vmProduct.Product.Pictures.Add(fileName); } } cpt++; } if(vmProduct.IsNew) { vmProduct.Product.Id = Guid.NewGuid(); _context.Products.Add(vmProduct.Product); } else { _context.Products.Update(vmProduct.Product); } _context.SaveChanges(); return RedirectToAction("Index"); } vmProduct.RefreshTypes(_context); return View(vmProduct); }
public async Task<IActionResult> Manage(ProductEditionViewModel vmProduct) { if (ModelState.IsValid) { //Set Labels vmProduct.Product.SetLabels(vmProduct.SelectedLabels); //Set Product familly (si ça retourne null c'est que la famille selectionnée n'existe pas, alors on est dans la merde) vmProduct.Product.Familly = _context.ProductFamillys.FirstOrDefault(x => x.FamillyName == vmProduct.FamillyName); //Set Producer (si ça retourne null, c'est que c'est pas un producteur qui est logger, alors on est dans la merde) Producer producer = await GetCurrentStolonsUserAsync() as Producer; vmProduct.Product.Producer = producer; //On s'occupe des images du produit if (!String.IsNullOrWhiteSpace(vmProduct.MainPictureLight)) { string pictureName = Guid.NewGuid().ToString() + ".png"; Configurations.UploadImageFile(_environment, vmProduct.MainPictureLight, Configurations.ProductsStockagePathLight, pictureName); Configurations.UploadImageFile(_environment, vmProduct.MainPictureHeavy, Configurations.ProductsStockagePathHeavy, pictureName); if (!vmProduct.IsNew) { //Replace System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathLight, vmProduct.Product.Pictures[0])); System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathHeavy, vmProduct.Product.Pictures[0])); vmProduct.Product.Pictures[0] = pictureName; } else { //Add vmProduct.Product.Pictures.Add(pictureName); } } if (!String.IsNullOrWhiteSpace(vmProduct.Picture2Light)) { string pictureName = Guid.NewGuid().ToString() + ".png"; Configurations.UploadImageFile(_environment, vmProduct.Picture2Light, Configurations.ProductsStockagePathLight, pictureName); Configurations.UploadImageFile(_environment, vmProduct.Picture2Heavy, Configurations.ProductsStockagePathHeavy, pictureName); if (!vmProduct.IsNew) { //Replace //Dessous code foireux System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathLight, vmProduct.Product.Pictures[1])); System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathHeavy, vmProduct.Product.Pictures[1])); vmProduct.Product.Pictures[1] = pictureName; } else { //Add vmProduct.Product.Pictures.Add(pictureName); } } if (!String.IsNullOrWhiteSpace(vmProduct.Picture3Light)) { string pictureName = Guid.NewGuid().ToString() + ".png"; Configurations.UploadImageFile(_environment, vmProduct.Picture3Light, Configurations.ProductsStockagePathLight, pictureName); Configurations.UploadImageFile(_environment, vmProduct.Picture3Heavy, Configurations.ProductsStockagePathHeavy, pictureName); if (!vmProduct.IsNew) { //Replace //Dessous code foireux System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathLight, vmProduct.Product.Pictures[2])); System.IO.File.Delete(Path.Combine(_environment.WebRootPath, Configurations.ProductsStockagePathHeavy, vmProduct.Product.Pictures[2])); vmProduct.Product.Pictures[2] = pictureName; } else { //Add vmProduct.Product.Pictures.Add(pictureName); } } /* //OLD CODE int cpt = 0; foreach (IFormFile uploadFile in new List<IFormFile>() { vmProduct.UploadFile1, vmProduct.UploadFile2, vmProduct.UploadFile3 }) { if (uploadFile != null) { //Image uploading string fileName = await Configurations.UploadImageFile(_environment, uploadFile, Configurations.ProductsStockagePath); if(!vmProduct.IsNew && vmProduct.Product.Pictures.Count > cpt) { //Replace vmProduct.Product.Pictures[cpt] = fileName; } else { //Add vmProduct.Product.Pictures.Add(fileName); } } cpt++; }*/ if (vmProduct.IsNew) { vmProduct.Product.Id = Guid.NewGuid(); _context.Products.Add(vmProduct.Product); } else { _context.Products.Update(vmProduct.Product); } _context.SaveChanges(); return RedirectToAction("Index"); } vmProduct.RefreshTypes(_context); return View(vmProduct); }