Пример #1
0
        public async Task <Dictionary <CoachType, IEnumerable <int> > > GetAvaliablePlaces(CoachType coachType = CoachType.Any)
        {
            var trainSet = await _dataContext.GetTrains();

            var coachSets = new List <UZCoachSet>();

            foreach (var train in trainSet.Trains)
            {
                var coachSetsPart = await _dataContext.GetCoaches(train, coachType);

                coachSets.AddRange(coachSetsPart);
            }
            foreach (var coachSet in coachSets)
            {
                var placesSetPart = await _dataContext.GetPlaces(coachSet);

                _placesSets.AddRange(placesSetPart);
            }
            var placesPerCoach = _placesSets.GroupBy(set => set.OwnerRequest.CoachTypeId)
                                 .ToDictionary(gset => UZCoachTypeMapper.GetCoachType(gset.Key), gset => gset
                                               .SelectMany(set => set.Places.AvaliablePlaceNumbers.Values
                                                           .SelectMany(placeArray => placeArray))
                                               .Distinct());

            return(placesPerCoach);
        }
Пример #2
0
        public async Task <List <UZCoachSet> > GetCoaches(UZTrain train, CoachType coachType)
        {
            var coaches = coachType != CoachType.Any
                ? train.AvaliableCoaches.Where(it => it.TypeLetter.Equals(UZCoachTypeMapper.GetCoachLetter(coachType)))
                : train.AvaliableCoaches;
            var coachSets = new List <UZCoachSet>();

            foreach (var coach in coaches)
            {
                var requestConfig = _translator.GetCoachesRequest(train, coach);
                var coachesSet    = await _gateway.GetCoaches(requestConfig);

                coachSets.Add(coachesSet);
            }
            return(coachSets);
        }
 public UZCardRequest GetCardRequest(int placeNumber, UZPlacesSet placesSet)
 {
     return(new UZCardRequest {
         StationFromId = _ticket.StartingPointId,
         StationTillId = _ticket.DestinationPointId,
         TrainNumber = placesSet.OwnerRequest.TrainNumber,
         DepartureDate = DateTime.Parse(_ticket.DepartureDate).ToString("yyyy-MM-dd"),
         Charline = placesSet.Places.AvaliablePlaceNumbers.First().Key,
         CoachNumber = placesSet.OwnerRequest.CoachNumber,
         CoachClass = placesSet.OwnerRequest.CoachClass,
         CoachType = UZCoachTypeMapper.GetCoachLetter(placesSet.OwnerRequest.CoachTypeId),
         FirstName = _ticket.FirstName,
         LastName = _ticket.LastName,
         IsTransp = "0",
         IsBedding = "1",
         PlaceNumber = placeNumber
     });
 }