public async Task Update(CarGroupUpdateDto carGroupDto)
        {
            var carGroupRepository = DataContextManager.CreateRepository <ICarGroupRepository>();

            var carGroup = await carGroupRepository.GetById(carGroupDto.Id);

            if (carGroup == null)
            {
                throw new ObjectNotFoundException();
            }

            var carGroupWithSameName = await carGroupRepository.GetByName(carGroupDto.Name, carGroupDto.Id);

            if (carGroupWithSameName != null)
            {
                throw new UpdatingException();
            }

            var carSubgroupRepository = DataContextManager.CreateRepository <ICarSubgroupRepository>();
            var carSubgroups          = await carSubgroupRepository.GetByIds(carGroupDto.CarSubgroupIds);

            carGroup.Name       = carGroupDto.Name;
            carGroup.UpdateDate = DateTime.Now;

            AddCarSubgroups(carGroup, carSubgroups);
            DeleteCarSubgroups(carGroup, carSubgroups);

            await carGroupRepository.Update(carGroup);
        }
        public async Task <ActionResult> UpdateCarGroup([FromBody] CarGroupUpdateDto carGroup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                await _carGroupService.Update(carGroup);

                return(Ok());
            }
            catch (ObjectNotFoundException onfex)
            {
                _log.Error(onfex);
                return(StatusCode((int)HttpStatusCode.Forbidden, ErrorMessage.NOTEXIST.ToString()));
            }
            catch (UpdatingException uex)
            {
                _log.Error(uex);
                return(StatusCode((int)HttpStatusCode.Forbidden, ErrorMessage.SAMENAME.ToString()));
            }
        }