public async Task <IActionResult> UploadLogo(int makeId, IFormFile file) { var make = await makeRepository.GetMake(makeId, includeRelated : false); if (make == null) { return(NotFound()); } if (file == null) { return(BadRequest("Null file")); } if (file.Length == 0) { return(BadRequest("Empty file")); } if (file.Length > photoSettings.MaxBytes) { return(BadRequest("Max file size exceeded")); } if (!photoSettings.IsSupperted(file.FileName)) { return(BadRequest("This file type is not accepted")); } var uploadsFolderPath = Path.Combine(host.WebRootPath, "logos"); 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 logo = new Logo { FileName = fileName }; make.Logo = logo; await unitOfWork.CompleteAsync(); using (Image <Rgba32> image = ImageSharp.Image.Load(filePath)) { if (image.Width > 600) { image.Resize(image.Width / 2, image.Height / 2) .Quantize(Quantization.Palette, 256) .Save(filePath); // automatic encoder selected based on extension. } } return(Ok(mapper.Map <Logo, LogoResource>(logo))); }
public async Task <IActionResult> CreateMakes([FromBody] SaveMakeResource makeResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var make = mapper.Map <SaveMakeResource, Make>(makeResource); makeRepository.Add(make); await unitOfWork.CompleteAsync(); make = await makeRepository.GetMake(make.Id); var result = mapper.Map <Make, MakeResource>(make); return(Ok(result)); }
public async Task <IActionResult> GetMake(Guid makeId) { var make = await _makeRepository.GetMake(makeId); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(make)); }