예제 #1
0
        public async Task <bool> EditBrandAsync(EditBrandDto editBrand)
        {
            var brand = await _dbContext.Brands.FindAsync(editBrand.Id);

            brand.Name = editBrand.Name;

            return(await _dbContext.SaveChangesAsync() > 0);
        }
예제 #2
0
 public async Task Edit(EditBrandDto input)
 {
     await BrandManager.EditBrand(
         input.Id,
         input.Name,
         input.BrandImageId,
         input.Description
         );
 }
예제 #3
0
        public async Task AddBrandAsync(EditBrandDto brand, CancellationToken cancellationToken = default(CancellationToken))
        {
            var b = new Brand
            {
                Name = brand.Name,
                RegistrationCountryId = brand.RegistrationCountryId
            };

            try
            {
                _dbContext.Add(b);
                await _dbContext.SaveChangesAsync(cancellationToken);
            }
            catch (DbUpdateException ex)
            {
                throw new InvalidItemException(b, ex);
            }
        }
예제 #4
0
        public async Task UpdateBrandAsync(int id, EditBrandDto brand, CancellationToken cancellationToken = default(CancellationToken))
        {
            var b = new Brand
            {
                Id   = id,
                Name = brand.Name,
                RegistrationCountryId = brand.RegistrationCountryId
            };

            _dbContext.Attach(b).State = EntityState.Modified;

            try
            {
                await _dbContext.SaveChangesAsync(cancellationToken);
            }
            catch (DbUpdateConcurrencyException ex)
            {
                throw new ItemNotFoundException(id, "Brand", ex);
            }
            catch (DbUpdateException ex)
            {
                throw new InvalidItemException(b, ex);
            }
        }
예제 #5
0
        public async Task <IActionResult> EditBrand([FromBody] EditBrandDto brand)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (!await _brandRepository.BrandExistsAsync(brand.Id))
                {
                    ModelState.AddModelError("brand", "Brand not found");
                    return(BadRequest(ModelState));
                }

                if (await _brandRepository.IsDuplicateBrandAsync(brand))
                {
                    ModelState.AddModelError("brand", "Brand already exists");
                    return(BadRequest(ModelState));
                }

                var wasBrandEdited = await _brandRepository.EditBrandAsync(brand);

                if (wasBrandEdited)
                {
                    return(Ok());
                }

                return(NoContent());
            }
            catch (Exception e)
            {
                _logger.LogCritical($"PUT {Route} - {e.GetType().Name} - {e.Message} - {e.StackTrace}");
                return(StatusCode(500, "An error ocurred in server"));
            }
        }
예제 #6
0
 public Task Put(int brandId, [FromBody] EditBrandDto brand)
 {
     return(_brandsService.UpdateBrandAsync(brandId, brand, HttpContext.RequestAborted));
 }
예제 #7
0
 public Task Post([FromBody] EditBrandDto brand)
 {
     return(_brandsService.AddBrandAsync(brand, HttpContext.RequestAborted));
 }
예제 #8
0
 public async Task <bool> IsDuplicateBrandAsync(EditBrandDto brand)
 {
     return(await _dbContext.Brands.AnyAsync(c =>
                                             c.Name.Equals(brand.Name, StringComparison.InvariantCultureIgnoreCase) && c.Id != brand.Id && c.IsActive));
 }