public async Task <ActionResult <BrandResource> > UpdateBrand(int id, [FromBody] SaveBrandResource saveBrandResource)
        {
            var validator        = new SaveBrandResourceValidator();
            var validationResult = await validator.ValidateAsync(saveBrandResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var brandToBeUpdated = await _brandService.GetBrandById(id);

            if (brandToBeUpdated == null)
            {
                return(NotFound());
            }

            var brand = _mapper.Map <SaveBrandResource, Brand>(saveBrandResource);

            await _brandService.UpdateBrand(brandToBeUpdated, brand);

            var updatedBrand = await _brandService.GetBrandById(id);

            var updatedBrandResource = _mapper.Map <Brand, BrandResource>(updatedBrand);

            return(Ok(updatedBrandResource));
        }
        public async Task <ActionResult <BrandResource> > CreateBrand([FromBody] SaveBrandResource saveBrandResource)
        {
            var validator        = new SaveBrandResourceValidator();
            var validationResult = await validator.ValidateAsync(saveBrandResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var brandToCreate = _mapper.Map <SaveBrandResource, Brand>(saveBrandResource);

            var newBrand = await _brandService.CreateBrand(brandToCreate);

            var brand = await _brandService.GetBrandById(newBrand.BrandId);

            var brandResource = _mapper.Map <Brand, BrandResource>(brand);

            return(Ok(brandResource));
        }