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