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