public List <Trip> GetTrips(GPS gps, string gpxFileName) { return(TripCollection .Where(t => t.GPS.DeviceID == gps.DeviceID) .Where(t => t.GPXFileName == gpxFileName) .ToList()); }
public void MarkAllNotShownInMap() { foreach (var item in TripCollection.Where(t => t.ShownInMap)) { item.ShownInMap = false; } }
public List <Trip> TripsUsingGPSByMonth(GPS gps, DateTime month) { return(TripCollection .Where(t => t.GPS.DeviceID == gps.DeviceID) .Where(t => t.DateTimeDeparture > month) .Where(t => t.DateTimeDeparture < month.AddMonths(1)) .OrderBy(t => t.DateTimeDeparture).ToList()); }
public List <Trip> GetTrips(GPS gps, DateTime dateOfTrip) { return(TripCollection .Where(t => t.GPS.DeviceID == gps.DeviceID) .Where(t => t.DateTimeDeparture > dateOfTrip) .Where(t => t.DateTimeDeparture < dateOfTrip.AddDays(1)) .ToList()); }
public Dictionary <DateTime, List <Trip> > TripArchivesByMonth(GPS gps) { var d = TripCollection .Where(g => g.GPS.DeviceID == gps.DeviceID) .OrderBy(m => m.DateTimeDeparture) .GroupBy(o => o.MonthYear) .ToDictionary(g => g.Key, g => g.ToList()); return(d); }
public EntityValidationResult ValidateTrip(Trip trip, bool isNew) { EntityValidationResult evr = new EntityValidationResult(); if (trip.OperatorName == null || trip.OperatorName.Length < 3) { evr.AddMessage("Operator name must be at least 3 letters long"); } if (trip.VesselName == null || trip.VesselName.Length < 3) { evr.AddMessage("Vessel name 3 letters long"); } if (trip.Gear == null && trip.OtherGear == null) { evr.AddMessage("Gear or gear other name cannnot be both empty"); } if (trip.DateTimeDeparture == null || trip.DateTimeDeparture > DateTime.Now) { evr.AddMessage("Date and time of departure cannot be empty and cannot be in the future"); } else if (trip.DateTimeArrival == null || trip.DateTimeArrival > DateTime.Now) { evr.AddMessage("Date and time of arrival cannot be empty and cannot be in the future"); } else if (trip.DateTimeDeparture >= trip.DateTimeArrival) { evr.AddMessage("Date and time of departure must be before date and time of arrival"); } int?overlapID = null; foreach (var tripItem in TripCollection .Where(t => t.TripID != trip.TripID) .Where(t => t.DeviceID == trip.DeviceID)) { if (trip.DateTimeDeparture >= tripItem.DateTimeDeparture && trip.DateTimeDeparture <= tripItem.DateTimeArrival) { overlapID = tripItem.TripID; break; } else if (trip.DateTimeArrival >= tripItem.DateTimeDeparture && trip.DateTimeArrival <= tripItem.DateTimeArrival) { overlapID = tripItem.TripID; break; } else if (trip.DateTimeDeparture <= tripItem.DateTimeDeparture && trip.DateTimeArrival >= tripItem.DateTimeArrival) { overlapID = tripItem.TripID; break; } } if (overlapID != null) { evr.AddMessage($"This trip overlaps with trip ID {overlapID}"); } return(evr); }
public List <Trip> GetAllTrips(string deviceID) { return(TripCollection.Where(t => t.DeviceID == deviceID).ToList()); }
public Trip GetLastTripOfDevice(string deviceID) { return(TripCollection .Where(t => t.DeviceID == deviceID) .OrderByDescending(t => t.TripID).FirstOrDefault()); }