private static void ValidateTripData(TripOnRoutesService.TripOnRouteWithStationsDto input) { if (input.TripWithDateTimeStations?.Name == null || input.TripWithDateTimeStations?.StantionOnTrips?.Count < 2 || input.TripWithDateTimeStations.StantionOnTripsWithStringTime == null || input.TripWithDateTimeStations.StantionOnTripsWithStringTime.Count < 2 || !input.Days.Any()) { throw new ValidationException(Error.NotFilledOptionalField); } }
public async Task <JsonResult> AddOrUpdateTripToRoute([FromBody] TripOnRoutesService.TripOnRouteWithStationsDto input) { await CheckPermission(); var service = new TripOnRoutesService(_logger, _mapper); //Добавляем новый трип без добавления на роут if (input.RouteId == 0 && input.Days != null && input.TripWithDateTimeStations != null) { ValidateTripData(input); return(Json(await service.AddTripOnRoute(input))); } //Добавляем существующий трип на роут if ((input.TripId != 0 || input.TripIds.AnyOrNotNull()) && input.Id == 0 && input.RouteId != 0) { var tripIds = new List <int>(); if (input.TripId != 0) { tripIds.Add(input.TripId); } else { tripIds.AddRange(input.TripIds); } return(Json(await service.AddExistingTripsOnRouteToRoute(input.RouteId, tripIds))); } //Обновляем существующий трип(Врятле работает) хД) if (input.Id != 0 && input.Days != null && input.Days.Any()) { ValidateTripData(input); return(Json(await service.UpdateTripOnRoute(input))); } throw Error.CommonError; }