public async Task <IActionResult> AddBrand([FromBody] NewBrandDto newBrand) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (await _brandRepository.IsDuplicateBrandAsync(newBrand)) { ModelState.AddModelError("brand", "Brand already exists"); return(BadRequest(ModelState)); } var brandId = await _brandRepository.AddBrandAsync(newBrand); if (brandId > 0) { return(Ok(brandId)); } return(StatusCode(500, "An error ocurred in server")); } catch (Exception e) { _logger.LogCritical($"POST {Route} - {e.GetType().Name} - {e.Message} - {e.StackTrace}"); return(StatusCode(500, "An error ocurred in server")); } }
public async Task <IActionResult> Post([FromBody] NewBrandDto newBrand) { var brand = await mediatr.Send( new NewBrandCommand(newBrand.Name, newBrand.ImageUri) ).ConfigureAwait(false); return(CreatedAtAction(nameof(Get), new { id = brand.Id }, brand)); }
public async Task <int> AddBrandAsync(NewBrandDto newBrand) { var brand = new Brand { Name = newBrand.Name, IsActive = true }; await _dbContext.Brands.AddAsync(brand); if (await _dbContext.SaveChangesAsync() > 0) { return(brand.Id); } return(0); }
public async Task <bool> IsDuplicateBrandAsync(NewBrandDto brand) { return(await _dbContext.Brands.AnyAsync(c => c.Name.Equals(brand.Name, StringComparison.InvariantCultureIgnoreCase) && c.IsActive)); }