/// <summary>
        /// Обновить Хуету
        /// </summary>
        public async Task <List <PlaneBrigadeTrain> > AddUserToTrain(PlaneBrigadeTrainDto input)
        {
            ////Начинаем блядь квн
            //using (var transaction = new TransactionScope(asyncFlowOption: TransactionScopeAsyncFlowOption.Enabled))
            //{
            var sqlR = new PlaneBrigadeTrainsRepository(_logger);
            var sqlRPlanedStations = new PlanedStationOnTripsRepository(_logger);

            var result = new List <PlaneBrigadeTrain>();

            foreach (var userId in input.UserIds)
            {
                var data = await sqlR.ByPlanedRouteTrainId(input.PlanedRouteTrainId);

                //Если добавлен на этот плановый рейс уже
                if (data.Any(x => x.UserId == userId))
                {
                    throw new ValidationException(Error.AlreadyAdd);
                }

                var requestPlanedStations =
                    await sqlRPlanedStations.ByPlannedRouteTrainId(input.PlanedRouteTrainId);

                if (requestPlanedStations.Count < 2)
                {
                    throw new ValidationException(Error.MiniTripStations);
                }

                //TODO вынести маппер отдельно
                var entity = new PlaneBrigadeTrain
                {
                    StantionStartId    = input.StantionStartId,
                    StantionEndId      = input.StantionEndId,
                    UserId             = userId,
                    PlanedRouteTrainId = input.PlanedRouteTrainId
                };

                result.Add(await sqlR.Add(entity));
            }

            //transaction.Complete();
            return(result);
            //}
        }
Beispiel #2
0
        public async Task <JsonResult> AddOrUpdate([FromBody] PlaneBrigadeTrainDto input)
        {
            await CheckPermission();

            var service = new ScheludePlanedService(_logger, _mapper);

            if (!input.UserIds.Any())
            {
                input.UserIds = new List <int> {
                    input.UserId
                }
            }
            ;
            if (input.Id == 0)
            {
                return(Json(await service.AddUserToTrain(input)));
            }
            throw new NotImplementedException("Update not implement");
            //return Json(await sqlR.Update(input));
        }