Example #1
0
        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)));
        }
Example #2
0
        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));
        }