예제 #1
0
        public async Task <PlaneBrigadeTrain> Update(PlaneBrigadeTrain input)
        {
            using (var conn = new SqlConnection(AppSettings.ConnectionString))
            {
                await conn.ExecuteAsync(_sql.Update(input));

                return(await ById(input.Id));
            }
        }
예제 #2
0
        public async Task <PlaneBrigadeTrain> Add(PlaneBrigadeTrain input)
        {
            using (var conn = new SqlConnection(AppSettings.ConnectionString))
            {
                var id = await conn.QueryFirstOrDefaultAsync <int>(_sql.Add(input));

                return(await ById(id));
            }
        }
        /// <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);
            //}
        }