コード例 #1
0
        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"));
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public async Task <bool> IsDuplicateBrandAsync(NewBrandDto brand)
 {
     return(await _dbContext.Brands.AnyAsync(c =>
                                             c.Name.Equals(brand.Name, StringComparison.InvariantCultureIgnoreCase) && c.IsActive));
 }