public async Task <ActionResult <ProductBrandDto> > CreateProductBand(CreateUpdateBrandDto createDto)
        {
            if (_repository.IsExist(x => x.Name.ToLower() == createDto.Name.ToLower()))
            {
                return(BadRequest(new ApiResponse(400, $"{createDto.Name} already exists")));
            }

            var brand = _mapper.Map <ProductBrand>(createDto);

            brand.Id        = Guid.NewGuid().ToString();
            brand.CreatedBy = HttpContext.User.RetrieveEmailFromPrincipal();
            await _repository.Add(brand);

            if (await _unitOfWork.Complete() <= 0)
            {
                return(BadRequest(new ApiResponse(400, $"An error occured while trying to insert")));
            }

            return(CreatedAtRoute("GetProductBand", new { productId = brand.Id },
                                  _mapper.Map <ProductBrandDto>(brand)));
        }
        public async Task <ActionResult <ProductBrandDto> > UpdateProductBand(string bandId, CreateUpdateBrandDto updateDto)
        {
            var band = await _repository.GetByIdAsync(bandId);

            if (band == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            _mapper.Map(updateDto, band);
            _repository.Update(band);

            if (await _unitOfWork.Complete() <= 0)
            {
                return(BadRequest(new ApiResponse(400, $"An error occured while trying to update")));
            }

            return(CreatedAtRoute("GetProductBand", new { bandId = band.Id },
                                  _mapper.Map <ProductBrandDto>(band)));
        }