private async void bookBtn_Click(object sender, EventArgs e) { TruckType type = await db.GetTruckTypeById((int)slctTruckBox.SelectedValue); //List<Truck> trucks = await db.GetAvailiableTrucks(type); try { Truck truck = await db.GetNextAvailableTruck(type); List <User> users = await db.GetAvailibleDrivers();//[0]; User user = users[0]; Route route = await db.GetRouteByID((int)destinationBox.SelectedValue); TripStatus status = await db.GetTripStatusByID(0); Customer customer = await db.GetCustomerByID((int)cmbCustomers.SelectedValue); Trip trip = new Trip(truck, customer, (DateTime)dateTimePicker.Value, (DateTime)dateTimePicker.Value.AddDays(3), user, route, status); trip = await db.BookTrip(trip); MessageBox.Show($"Trip booked for {trip.Start} with Truck {trip.Truck.ID}"); } catch (Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show("Next availible date: " + await db.NextAvailibleDate(type)); return; } this.Close(); }
internal TripInformation(Guid id, TimeSpan duration, double distance, int statusId) { if (statusId == default(int)) { throw new InvoiceDomainArgumentNullException(nameof(statusId)); } if (duration == default(TimeSpan)) { throw new InvoiceDomainArgumentNullException(nameof(duration)); } Id = id; Duration = duration; Status = TripStatus.From(statusId); if (!Equals(Status, TripStatus.Finished) && !Equals(Status, TripStatus.Cancelled)) { throw new InvoiceDomainInvalidOperationException("Invalid trip status to create an invoice"); } if (distance <= 0 && !Equals(Status, TripStatus.Cancelled)) { throw new InvoiceDomainArgumentNullException(nameof(distance)); } Distance = Equals(Status, TripStatus.Cancelled) ? 0 : distance; }
public void AddTrip(TimeSpan departureTime, TimeSpan arrivalTime, TripStatus status, string busCompanyName, string originBusStationName, string destinatonBusStationName) { var busCompany = this._busCompanyService .GetBusCompanyByName(busCompanyName); var originBusStation = this._busStationService .GetBusStationByName(originBusStationName); var destinationBusStation = this._busStationService .GetBusStationByName(destinatonBusStationName); var trip = new Trip() { DepartureTime = departureTime, ArrivalTime = arrivalTime, Status = status, BusCompany = busCompany, OriginBusStation = originBusStation, DestinationBusStation = destinationBusStation }; this._dbContext .Trips.Add(trip); this._dbContext .SaveChanges(); }
public void Edit(string name, string destination, TripStatus tripStatus, DateTimeOffset startDate, DateTimeOffset endDate) { SetDataOrFail(name, destination); SetDatesOrFail(startDate.ToUniversalTime(), endDate.ToUniversalTime()); TripStatus = tripStatus; }
public static string ImportTrips(StationsDbContext context, string jsonString) { Dictionary <string, int> stations = context.Stations.ToDictionary(x => x.Name, y => y.Id); Dictionary <string, int> trains = context.Trains.ToDictionary(x => x.TrainNumber, y => y.Id); List <TripImportDto> trips = JsonConvert.DeserializeObject <List <TripImportDto> >(jsonString); List <Trip> validTrips = new List <Trip>(); StringBuilder sb = new StringBuilder(); foreach (var trip in trips) { if (!IsValid(trip) || !stations.ContainsKey(trip.OriginStation) || !stations.ContainsKey(trip.DestinationStation) || !trains.ContainsKey(trip.Train)) { sb.AppendLine(FailureMessage); continue; } TripStatus status = TripStatus.OnTime; if (trip.Status != null) { status = Enum.Parse <TripStatus>(trip.Status); } TimeSpan?timeDiffernce = null; if (trip.TimeDifference != null) { timeDiffernce = TimeSpan.ParseExact(trip.TimeDifference, @"hh\:mm", CultureInfo.InvariantCulture); } Trip validTrip = new Trip() { OriginStationId = stations[trip.OriginStation], DestinationStationId = stations[trip.DestinationStation], ArrivalTime = DateTime.ParseExact(trip.ArrivalTime, @"dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture), DepartureTime = DateTime.ParseExact(trip.DepartureTime, @"dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture), TrainId = trains[trip.Train], Status = status, TimeDifference = timeDiffernce }; if (!IsValid(validTrip)) { sb.AppendLine(FailureMessage); continue; } validTrips.Add(validTrip); sb.AppendLine($"Trip from {trip.OriginStation} to {trip.DestinationStation} imported."); } context.Trips.AddRange(validTrips); context.SaveChanges(); return(sb.ToString().TrimEnd()); }
public TripUpdatedIntegrationEvent(Guid tripId, Action action, TripStatus status, DateTime?started, DateTime?ended, Location currentLocation) { Action = action; Status = status; Started = started; Ended = ended; CurrentLocation = currentLocation; TripId = tripId; }
public TripUpdatedIntegrationEvent(Guid tripId, Action action, TripStatus status, DateTime?started, DateTime?ended, Location currentLocation, double?distance, TimeSpan?duration) { Action = action; Status = status; Started = started; Ended = ended; CurrentLocation = currentLocation; Distance = distance; Duration = duration; TripId = tripId; }
public void UpdateTripStatus(int tripId, TripStatus status, int passportCode) { var trip = tripRepository.GetTrip(tripId); if (trip.Driver.PassportCode != passportCode) { throw new Exception("You cant do this!"); } trip.status = status; tripRepository.UpdateTrip(trip, tripId); }
public Trip(string id, string bookingId, string cabId, GeoCoordinate startLocation, GeoCoordinate endLocation, DateTime startTime, DateTime endTime, TripStatus status) { Id = id; BookingId = bookingId; CabId = cabId; StartLocation = startLocation; EndLocation = endLocation; StartTime = startTime; EndTime = endTime; Status = status; }
private void UpdateRP(TripStatus ts) { lock ( m_qTS ) { if (m_bTSThreadPoolActive) { m_qTS.Enqueue(ts); } else { m_bTSThreadPoolActive = true; ThreadPool.QueueUserWorkItem(new WaitCallback(OnTripStatus), ts); } } }
public ElevatorUser(int _userID, int _sourceFloor, int _targetFloor) { userID = _userID; sourceFloor = _sourceFloor; targetFloor = _targetFloor; tripStatus = new TripStatus(userID, sourceFloor, targetFloor); registeredElevatorBank = null; myElevator = null; tripStatus = new TripStatus(_userID, _sourceFloor, _targetFloor); registrationTime = -1; pickupTime = -1; dropoffTime = -1; }
public BaseResult ChangeStatusTrip(int tripId, TripStatus status) { var result = new BaseResult(); try { result.Success = UnitOfWork.TripDao.ChangeTripStatus(tripId, status.ToString()[0]); result.Message = GeneralSuccessMessage; } catch (Exception ex) { result.Success = false; result.Message = GeneralErrorMessage; } return(result); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity <Trip>() .HasIndex(p => p.SearchVector) .HasMethod("GIN"); // Index method on the search vector (GIN or GIST) modelBuilder.Entity <Student>() .Property(p => p.AccountType) .HasConversion( p => p.Value, p => AccountType.FromValue(p)); modelBuilder.Entity <Trip>() .Property(p => p.Status) .HasConversion( p => p.Value, p => TripStatus.FromValue(p)); modelBuilder.Entity <StudentTrip>().HasKey(x => new { x.TripId, x.StudentId }); }
public static string ImportTrips(StationsDbContext context, string jsonString) { TripDto[] deserializedTrip = JsonConvert.DeserializeObject <TripDto[]>(jsonString, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); StringBuilder sb = new StringBuilder(); List <Trip> validTrips = new List <Trip>(); foreach (var tripDto in deserializedTrip) { if (!IsValid(tripDto)) { sb.AppendLine(FailureMessage); continue; } Train train = context.Trains.SingleOrDefault(t => t.TrainNumber == tripDto.Train); Station originStation = context.Stations.SingleOrDefault(s => s.Name == tripDto.OriginStation); Station destinationStation = context.Stations.SingleOrDefault(s => s.Name == tripDto.DestinationStation); if (train == null || originStation == null || destinationStation == null) { sb.AppendLine(FailureMessage); continue; } DateTime departureTime = DateTime.ParseExact(tripDto.DepartureTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); DateTime arrivalTime = DateTime.ParseExact(tripDto.ArrivalTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); TimeSpan timeDifference; if (tripDto.TimeDifference != null) { timeDifference = TimeSpan.ParseExact(tripDto.TimeDifference, @"hh\:mm", CultureInfo.InvariantCulture); } if (departureTime > arrivalTime) { sb.AppendLine(FailureMessage); continue; } TripStatus tripStatus = Enum.Parse <TripStatus>(tripDto.Status); Trip trip = new Trip { Train = train, OriginStation = (Station)originStation, DestinationStation = destinationStation, DepartureTime = departureTime, ArrivalTime = arrivalTime, Status = tripStatus, TimeDifference = timeDifference, }; validTrips.Add(trip); sb.AppendLine($"Trip from {tripDto.OriginStation} to {tripDto.DestinationStation} imported."); } context.Trips.AddRange(validTrips); context.SaveChanges(); string result = sb.ToString(); return(result); }
//Command: change-trip-status <Trip Id> <New Status> public static string Execute(string[] data) { var tripId = int.Parse(data[1]); var newStatus = data[2].ToLower(); using (var db = new BusTicketsDbContext()) { var newTripStatus = new TripStatus(); //change-trip-status 2 delayed switch (newStatus) { case "departed": newTripStatus = TripStatus.Departed; break; case "arrived": newTripStatus = TripStatus.Arrived; break; case "delayed": newTripStatus = TripStatus.Delayed; break; case "cancalled": newTripStatus = TripStatus.Cancelled; break; default: throw new ArgumentException("Wrong status input."); } var trip = db.Trips .Where(t => t.TripId == tripId) .Include(t => t.DestinationBusStation) .ThenInclude(dbs => dbs.Town) .Include(t => t.OriginBusStation) .ThenInclude(obs => obs.Town) .SingleOrDefault(); string oldTripStatus = trip.Status.ToString(); if (trip == null) { throw new ArgumentException("Invalid Trip Number!"); } if (trip.Status == newTripStatus) { throw new ArgumentException($"The status of this trip is already {newTripStatus.ToString()}"); } var builder = new StringBuilder(); db.Trips.SingleOrDefault(t => t.TripId == trip.TripId).Status = newTripStatus; db.SaveChanges(); builder.AppendLine($"Trip from {trip.OriginBusStation.Town.TownName} to {trip.DestinationBusStation.Town.TownName} on {trip.DepartureTime} Status changed from { oldTripStatus } to { newTripStatus.ToString() }"); if (newTripStatus == TripStatus.Arrived) { var passengersCount = db.Tickets.Where(t => t.TripId == trip.TripId).Count(); var arrivedTrip = new ArrivedTrip() { DateTimeArrived = trip.ArrivalTime, OriginArrivedId = trip.OriginBusStation.BusStationId, OriginArrived = trip.OriginBusStation, DestinationArrivedId = trip.DestinationBusStation.BusStationId, DestinationArrived = trip.DestinationBusStation, PassangersCounted = passengersCount }; db.ArrivedTrips.Add(arrivedTrip); db.SaveChanges(); builder.AppendLine($"On {arrivedTrip.DateTimeArrived.Date} - {arrivedTrip.PassangersCounted} passengers arrived at {arrivedTrip.DestinationArrived.BusStationName} " + $"from {arrivedTrip.OriginArrived.BusStationName}"); } return(builder.ToString().Trim()); } }
public void OnDeserialized(StreamingContext e) { TripStatus s; Status = Enum.TryParse <TripStatus>(status, true, out s) ? s : TripStatus.Unknown; }
public static string ImportTrips(StationsDbContext context, string jsonString) { StringBuilder sb = new StringBuilder(); ImportDto.TripDto[] tripsDto = JsonConvert.DeserializeObject <ImportDto.TripDto[]>(jsonString, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, }); List <Trip> trips = new List <Trip>(); foreach (var tripDto in tripsDto) { if (!IsValid(tripDto)) { sb.AppendLine(FailureMessage); continue; } DateTime arrivalTime = DateTime.ParseExact(tripDto.ArrivalTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); DateTime departureTime = DateTime.ParseExact(tripDto.DepartureTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Train train = context.Trains.SingleOrDefault(x => x.TrainNumber == tripDto.Train); Station originStation = context.Stations.SingleOrDefault(x => x.Name == tripDto.OriginStation); Station destinationStation = context.Stations.SingleOrDefault(x => x.Name == tripDto.DestinationStation); if (train == null || originStation == null || destinationStation == null) { sb.AppendLine(FailureMessage); continue; } if (arrivalTime < departureTime) { sb.AppendLine(FailureMessage); continue; } TripStatus tripStatus = TripStatus.OnTime; if (tripDto.Status != null) { tripStatus = tripDto.Status.Value; } TimeSpan?timeDifference = null; if (tripDto.TimeDifference != null) { timeDifference = TimeSpan.ParseExact(tripDto.TimeDifference, @"hh\:mm", CultureInfo.InvariantCulture); } Trip trip = new Trip { Train = train, OriginStation = originStation, DestinationStation = destinationStation, ArrivalTime = arrivalTime, DepartureTime = departureTime, Status = tripStatus, TimeDifference = timeDifference, }; trips.Add(trip); sb.AppendLine(string.Format($"Trip from {tripDto.OriginStation} to {tripDto.DestinationStation} imported.")); } context.AddRange(trips); context.SaveChanges(); return(sb.ToString().Trim()); }
public static string ToString(this TripStatus tripStatus) { return(StatusNames[tripStatus]); }
public void UpdateTripStatus(int tripId, TripStatus status, int passportCode) { service.UpdateTripStatus(tripId, status, passportCode); }
public static string ImportTrips(StationsDbContext context, string jsonString) { TripDto[] tripsFromJson = ImportFromJson <TripDto>(jsonString, true); StringBuilder sb = new StringBuilder(); List <Trip> resultTrips = new List <Trip>(); foreach (TripDto tripDto in tripsFromJson) { if (!IsValid(tripDto)) { sb.AppendLine(FailureMessage); continue; } Train train = context.Trains.SingleOrDefault(t => t.TrainNumber == tripDto.Train); Station originStation = context.Stations.SingleOrDefault(s => s.Name == tripDto.OriginStation); Station destinationStation = context.Stations.SingleOrDefault(s => s.Name == tripDto.DestinationStation); if (train == null || originStation == null || destinationStation == null) { sb.AppendLine(FailureMessage); continue; } DateTime departureTime = DateTime.ParseExact(tripDto.DepartureTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); DateTime arrivalTime = DateTime.ParseExact(tripDto.ArrivalTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); if (departureTime > arrivalTime) { sb.AppendLine(FailureMessage); continue; } TripStatus status = Enum.Parse <TripStatus>(tripDto.Status); TimeSpan?timeDifference = null; if (tripDto.TimeDifference != null) { timeDifference = TimeSpan.ParseExact(tripDto.TimeDifference, @"hh\:mm", CultureInfo.InvariantCulture); } Trip currentTrip = new Trip { ArrivalTime = arrivalTime, DepartureTime = departureTime, Train = train, Status = status, OriginStation = originStation, DestinationStation = destinationStation, TimeDifference = timeDifference }; resultTrips.Add(currentTrip); sb.AppendLine($"Trip from {currentTrip.OriginStation.Name} to {currentTrip.DestinationStation.Name} imported."); } context.Trips.AddRange(resultTrips); context.SaveChanges(); string result = sb.ToString().Trim(); return(result); }
public void EndTrip() { _tripStatus = TripStatus.FINISHED; }
private void OnTripStatus(object parm) { Debug.WriteLine(string.Format("{0} {1}", DateTime.Now.ToString("HH:mm:ss.fff"), "OnTripStatus")); RoutePatternConfig configRP = null; ServiceAlertConfig configSA = null; VehicleConfig configV = null; Interlocked.Exchange <RoutePatternConfig>(ref configRP, m_configRP); Interlocked.Exchange <ServiceAlertConfig>(ref configSA, m_configSA); Interlocked.Exchange <VehicleConfig>(ref configV, m_configV); bool bContinue = true, bDispose = false; Trip trip = null; TripStatus ts = (TripStatus)parm; Timeout timeoutFix = new Timeout(TimeSpan.FromMinutes(2)), timeoutOnRoute = new Timeout(TimeSpan.FromSeconds(500)); do { if (ts != null) { if (ts.NoTrip) { trip = null; } else if (!ts.OffRoute) { timeoutOnRoute.Reset(); if (trip == null || ts.RouteTag != trip.RouteTag || ts.RP < trip.RP || ts.TripNo != trip.TripNo || ts.ServiceStart != trip.ServiceStart) { trip = Trip.Create(this, ts.RouteTag, ts.RP, ts.TripNo, ts.ServiceStart, m_configRP, m_configSA, m_configV, m_fFerry); } else { trip.ProgressRP(ts.RP); } EnableSignalPriority(ts.SignalPriority); } else if (trip != null) { trip.OffRoute = true; EnableSignalPriority(false); } } if (trip != null) { GPSFix fix = m_Fix; bool bEndTrip = false; if (timeoutOnRoute.HasExpired) { bEndTrip = true; } else if (fix == null || !UTM.IsValidLL4Zone(configV.UTMZoneNo, configV.UTMZoneLetter, fix.Lat, fix.Long)) { bEndTrip = timeoutFix.HasExpired; } else { timeoutFix.Reset(); //if( m_fFerry || !trip.OffRoute ) // bEndTrip = !trip.UpdatePosition( UTM.LL2UTM( configV.UTMZoneNo, fix.Lat, fix.Long ), fix.Speed, fix.SpeedWeighted ); } if (bEndTrip) { trip = null; } else { Thread.Sleep(999); } } lock ( m_qTS ) { if (m_qTS.Count == 0) { ts = null; } else { ts = m_qTS.Dequeue(); if (ts == null) { bDispose = true; } } if (bDispose || (trip == null && ts == null)) { bContinue = m_bTSThreadPoolActive = false; } } }while(bContinue); if (!bDispose) { QueueRequest(new RequestEventArgs(RequestType.DisplayNextStop, null)); QueueRequest(new RequestEventArgs(RequestType.DisplayNextStopExtra, null)); if (configV.HeadSignDefault != null) { QueueRequest(new RequestEventArgs(RequestType.HeadSign, configV.HeadSignDefault)); } EnableSignalPriority(false); } }
public void SetStatus(TripStatus status) { Status = status; }