public async Task Update(CarSubgroupUpdateDto carSubgroupDto)
        {
            var carSubgroupRepository = DataContextManager.CreateRepository <ICarSubgroupRepository>();

            var carSubgroup = await carSubgroupRepository.GetById(carSubgroupDto.Id);

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

            var carSubgroupWithSameName = await carSubgroupRepository.GetByName(carSubgroupDto.Name, carSubgroupDto.Id);

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

            var carRepository = DataContextManager.CreateRepository <ICarRepository>();
            var cars          = await carRepository.GetCarsByIds(carSubgroupDto.CarIds);

            carSubgroup.Name       = carSubgroupDto.Name;
            carSubgroup.UpdateDate = DateTime.Now;

            AddCars(carSubgroup, cars);
            DeleteCars(carSubgroup, cars);

            await carSubgroupRepository.Update(carSubgroup);
        }
Example #2
0
        public async Task <ActionResult> UpdateCarSubgroup([FromBody] CarSubgroupUpdateDto carSubgroup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                await _carSubgroupService.Update(carSubgroup);

                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()));
            }
        }