Example #1
0
        public async Task <List <Api.Trip> > GetAllFiltered(string from, string to, DateTime?departure)
        {
            var trips = await _tripRepo.GetAllIncludes();

            List <Repositories.BaseModels.Trip> filtered = trips.Where(x =>
                                                                       x.DestinationFrom.Name.Contains(from ?? "", StringComparison.OrdinalIgnoreCase))
                                                           .Where(x => x.DestinationTo.Name.Contains(to ?? "", StringComparison.OrdinalIgnoreCase)).ToList();

            if (departure != null)
            {
                return(filtered.Where(t => t.Departure.Date == departure).ToList().ConvertAll(x => ModelTransformHelper.TripDbToApi(x)));
            }

            return(filtered.ConvertAll(x => ModelTransformHelper.TripDbToApi(x)));
        }
Example #2
0
        public async Task <Api.Trip> GetTripWithSeats(int id)
        {
            Repositories.BaseModels.Trip trip = await _tripRepo.GetOneIncludes(id);

            List <Ticket> tickets = await _ticketRepo.FindAllAsync(t => t.TripId == id);

            Api.Trip tripRet = ModelTransformHelper.TripDbToApi(trip);
            tripRet.FreeSeatCount = trip.Bus.SeatsCount - tickets.Count;

            foreach (var item in tickets)
            {
                tripRet.FreeSeats.Remove(item.SeatNumber);
            }

            return(tripRet);
        }
Example #3
0
        public async Task <Db.Trip> Create(Api.Trip trip)
        {
            var tripToAdd = ModelTransformHelper.ApiToTripDb(trip);

            try
            {
                _context.Add(tripToAdd);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                ex.Entries.Single().Reload();
                _context.SaveChanges();
            }

            return(tripToAdd);
        }