public ActionResult New(AddEditShopForm model, string tab = "main_tab") { ViewBag.ShopMenuActive = "active open"; ViewBag.ShopActive = "active open"; ViewBag.Tab = tab; if (!ModelState.IsValid) { return(View(model) //this extension breaks default MVC validation //.WithWarning("Some fields are invalid!") ); } var shop = new Shop(); //TODO - это нужно сделать automapper'ом shop.Name = model.MainTab.Name; shop.ShortDescription = model.MainTab.ShortDescription; shop.FullDescription = model.MainTab.FullDescription; shop.Address = model.MainTab.Address; shop.Phone = model.MainTab.Phone; shop.Email = model.MainTab.Email; shop.IsKosher = model.MainTab.IsKosher; shop.SeoUrl = model.MainTab.SeoUrl; shop.Theme = model.MainTab.Theme; shop.OwnerID = model.MainTab.OwnerID.Value; if (model.MainTab.Image != null) { var imageId = _filesRepo.Create(model.MainTab.Image.InputStream, model.MainTab.Image.FileName, new[] { "jpg", "png", "jpeg", "bmp" }); shop.ImagePath = _filesRepo.BuildUrl(imageId); shop.HasImage = true; } if (model.MainTab.Logo != null) { var logoId = _filesRepo.Create(model.MainTab.Logo.InputStream, model.MainTab.Logo.FileName, new[] { "jpg", "png", "jpeg", "bmp" }); shop.LogoPath = _filesRepo.BuildUrl(logoId); } if (model.MainTab.Favicon != null) { var favId = _filesRepo.Create(model.MainTab.Favicon.InputStream, model.MainTab.Favicon.FileName, new[] { "jpg", "png", "jpeg", "ico" }); shop.FaviconPath = _filesRepo.BuildUrl(favId); } _context.Shops.Add(shop); _context.SaveChanges(); return(RedirectToAction <ShopController>(c => c.Table())); }
public async Task <IActionResult> PostFile([FromBody] File file) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (_filesRepository.FileExists(file.FileId)) { var result = await _filesRepository.Update(file.FileId, file); if (result == true) { return(Ok(file)); } } else { var result = await _filesRepository.Create(file); if (result == true) { return(CreatedAtAction("GetFile", new { id = file.FileId }, file)); } } return(new StatusCodeResult(StatusCodes.Status409Conflict)); }