public async Task <IActionResult> CreatePojazd([FromBody] SavePojazdResource pojazdResource) { //server side validation if (!ModelState.IsValid) //validation against domain model { return(BadRequest(ModelState)); } // if (true) // { // ModelState.AddModelError("...", "error"); // against some b. rull // return BadRequest(ModelState); // } var pojazd = mapper.Map <SavePojazdResource, Pojazd>(pojazdResource); pojazd.OstatniaZmiana = DateTime.Now; repository.Add(pojazd); await unitOfWork.CompleteAsync(); pojazd = await repository.GetPojazd(pojazd.Id); var result = mapper.Map <Pojazd, PojazdResource>(pojazd); return(Ok(result)); }
public async Task <IActionResult> Upload(int pojazdId, IFormFile file) { var pojazd = await repository.GetPojazd(pojazdId, includeRelated : false); if (pojazd == null) { return(NotFound()); } if (file == null) { return(BadRequest("Brak pliku")); } if (file.Length == 0) { return(BadRequest("Pusty plik")); } if (file.Length > photoSettings.MaxBytes) { return(BadRequest("Plik zbyt duży")); } if (!photoSettings.IsSupported(file.FileName)) { return(BadRequest("Nieprawidłowy typ pliku")); } var uploadsFolderPath = Path.Combine(host.WebRootPath, "uploads"); if (!Directory.Exists(uploadsFolderPath)) { Directory.CreateDirectory(uploadsFolderPath); } var fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName); var filePath = Path.Combine(uploadsFolderPath, fileName); using (var stream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(stream); } var photo = new Photo { FileName = fileName }; pojazd.Photos.Add(photo); await unitOfWork.CompleteAsync(); return(Ok(mapper.Map <Photo, PhotoResource>(photo))); }