public async Task <ActionResult> Post([FromForm] CatCreateViewModel value) { if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (value.File != null) { IFormFile file = value.File; List <string> imgErrors = new List <string>(); var supportedTypes = new[] { "png", "jpg", "jpeg", "gif" }; var fileExt = Path.GetExtension(file.FileName).Substring(1); if (file.Length == 0) { imgErrors.Add("File is empty!"); } if (Array.IndexOf(supportedTypes, fileExt) < 0) { imgErrors.Add("File Extension Is InValid - Only Upload image File"); } if (imgErrors.Count > 0) { return(BadRequest(new { Image = imgErrors })); } string fileName = $"{Guid.NewGuid()}.{fileExt}"; var filePath = Path.Combine(ApplicationSettings.FileStorage.PhysicalFilePath, fileName); _logger.LogDebug($"Save Image:{filePath}"); _fileService.SaveFile(filePath, FormFileBytes(file)); var catModel = new CatModel { Name = value.Name, Description = value.Description, Photo = fileName, }; var result = await _catService.CreateCat(catModel); catModel.Id = result; return(CreatedAtRoute("GetById", new { Id = result }, catModel)); } else { List <string> imgErrors = new List <string> { "File is empty!" }; return(BadRequest(new { errors = new { Image = imgErrors } })); } }
public IActionResult Create(CatCreateViewModel model) { if (!ModelState.IsValid) { return(View()); } var cat = new Cat { Name = model.Name, Age = model.Age, ImageUrl = model.ImageUrl, BreedId = int.Parse(model.BreedId), DateAdded = DateTime.UtcNow }; this.db.Add(cat); this.db.SaveChanges(); return(RedirectToAction(nameof(HomeController.Index), "Home")); }
public async Task <IActionResult> CreateAsync(CatCreateViewModel cat, int userId) { return(responseConverter.GetResponse(await catService.CreateAsync(new CatCreateServiceModel(cat.Name, userId), User.Claims))); }