void ride(BO.Bus bus, double km) { if (bus.KilometersAfterFueling + km >= BO.Bus.MAX_KILOMETER_AFTER_REFUELING) { throw new BO.BadBusException(bus.LicenseNum, "This bus need refueling to make this trip"); } if (DateTime.Today.AddYears(-1) > bus.LastTreatment || bus.KilometersAfterTreatment + km >= BO.Bus.KILOMETER_BEFORE_TREATMENT) { throw new BO.BadBusException(bus.LicenseNum, "This bus need treatment to make this trip"); } bus.TotalTrip += km; bus.KilometersAfterFueling += km; bus.KilometersAfterTreatment += km; bus.FuelRemain -= (BO.Bus.FULL_CONTAINER / BO.Bus.MAX_KILOMETER_AFTER_REFUELING) * km; }
/// <summary> /// make a treatment, refueling, ride to the bus /// </summary> /// <param name="bus">the bus</param> /// <param name="service">kind of service</param> /// <param name="tripKm">if the sevice is ride that will be the kilometers</param> public void BusServices(BO.Bus bus, string service, double tripKm = 0) { switch (service) { case "Treatment": treatment(bus); break; case "Refueling": refueling(bus); break; case "Ride": ride(bus, tripKm); break; } UpdateBus(bus); }
/// <summary> /// Add a new bus to my Data Source /// </summary> /// <param name="bus"></param> public void AddBus(BO.Bus bus) { if (bus.FromDate.Year >= 2018 && bus.LicenseNum.ToString().Length != 8) { throw new BO.BadBusException(bus.LicenseNum, "not valid lisense number for bus from year 2018"); } if (bus.FromDate.Year <= 2017 && bus.LicenseNum.ToString().Length != 7) { throw new BO.BadBusException(bus.LicenseNum, "not valid lisense number for bus from year under 2017"); } var busDo = bus.CopyPropertiesToNew(typeof(DO.Bus)) as DO.Bus; try { dl.AddBus(busDo); } catch (DO.BadBusException ex) { throw new BO.BadBusException(bus.LicenseNum, ex.Message); } }
void refueling(BO.Bus bus) { bus.Status = BO.BusStatus.REFUELING; bus.KilometersAfterFueling = 0; bus.FuelRemain = BO.Bus.FULL_CONTAINER; }
void treatment(BO.Bus bus) { bus.Status = BO.BusStatus.TREATMENT; bus.KilometersAfterTreatment = 0; bus.LastTreatment = DateTime.Now; }