/// <summary> /// adds a new bus in travel to database /// </summary> /// <param name="busTravel">bus travel to be added to the database</param> /// לשנות ב xml!!!!!!!!!!!!!!! //בוצע חננאל 2.2 public void CreateBusTravel(BusTravel busTravel) { busTravel.Valid = true; //busTravel.Id = Configuration.Bus_TravelCounter; try { //GetBusTravel(busTravel.Id); var id = RequestBusTravel(bt => bt.FormalDepartureTime == busTravel.FormalDepartureTime && bt.LineId == busTravel.LineId).Id; } catch (Exception ex) { if (ex.Message == "no busTravel that meets these conditions!") { busTravel.Id = Configuration.Bus_TravelCounter; DataSource.BusTravelList.Add(busTravel); } else if (ex.Message == "busTravel that meets these conditions is not valid") { var a = DataSource.BusTravelList.Find(bt => bt.FormalDepartureTime == busTravel.FormalDepartureTime && bt.LineId == busTravel.LineId); a.Valid = true; } return; } throw new Exception("busTravel already exists!!!"); }
public void CreateBusTravel(BusTravel busTravel) { List <BusTravel> BusTravelList = XMLTools.LoadListFromXMLSerializer <BusTravel>(busTravelsPath); busTravel.Valid = true; // busTravel.Id = Configuration.Bus_TravelCounter + 20; //בקובץ אקסממל יש כבר 20 "אוטובוסים בנסיעה try { // GetBusTravel(busTravel.Id); var id = RequestBusTravel(bt => bt.FormalDepartureTime == busTravel.FormalDepartureTime && bt.LineId == busTravel.LineId).Id; } catch (Exception ex) { if (ex.Message == "no busTravel with such Id!!") { busTravel.Id = Configuration.Bus_TravelCounter; BusTravelList.Add(busTravel); } else if (ex.Message == "busTravel is not valid!!") { BusTravelList.Find(busTravelInput => busTravelInput.Id == busTravel.Id).Valid = true; } XMLTools.SaveListToXMLSerializer(BusTravelList, busTravelsPath); return; } throw new Exception("busTravel already exists!!!"); }
public void DeleteBusTravel(BusTravel busTravel) { if (busTravel.License_Number != null) { DataSource.Bus_TravelList.Remove(busTravel); } else { throw new Exception("busTravel doesn't exist!!"); } }
public void TravelTest() { ITrave travel = new BicycleTravel(); PersonContext context = new PersonContext(travel); Assert.Equal("Bicycle Travel", context.Travel()); travel = new BusTravel(); context.SetTravel(travel); Assert.Equal("Bus Travel", context.Travel()); }
public void UpdateBusTravel(BusTravel busTravel) { int indBus; if (busTravel.License_Number != null) { indBus = DataSource.Bus_TravelList.FindIndex(b => busTravel.License_Number == b.License_Number); DataSource.Bus_TravelList[indBus] = busTravel; } else { throw new Exception("busTravel doesn't exist!!"); } }
/// <summary> /// request a bus Travel according to a predicate /// </summary> /// <param name="pr"></param> /// <returns>the wanted bus travel</returns> public BusTravel RequestBusTravel(Predicate <BusTravel> pr = null) { BusTravel ret = DataSource.BusTravelList.Find(busTravel => pr(busTravel)); if (ret == null) { throw new Exception("no busTravel that meets these conditions!"); } if (ret.Valid == false) { throw new Exception("busTravel that meets these conditions is not valid"); } return(ret.GetPropertiesFrom <BusTravel, BusTravel>()); }
public BusTravel RequestBusTravel(Predicate <BusTravel> pr = null) { List <BusTravel> BusTravelList = XMLTools.LoadListFromXMLSerializer <BusTravel>(busTravelsPath); BusTravel ret = BusTravelList.Find(busTravel => pr(busTravel)); if (ret == null) { throw new Exception("no busTravel that meets these conditions!"); } if (ret.Valid == false) { throw new Exception("busTravel that meets these conditions is not valid"); } return(ret); }
public bool exist(BusTravel mbus, long number) { bool flag = false; List <long> mList = new List <long>(); foreach (var item in GetAllLines()) { if (item.Number == number) { mList.Add(item.Id); } } foreach (var item in mList) { if (item == mbus.LineId) { flag = true; } } return(flag); }
public void CreateBusTravel(BusTravel busTravel) { DataSource.Bus_TravelList.Add(busTravel); }
public void CreateBusTravel(long licenseNumber, long lineId, DateTime formalDepartureTime, DateTime realDepartureTime, long lastPassedStop, DateTime lastPassedStopTime, DateTime nextStopTime, string driverId) { string exception = ""; bool foundException = false; try { valid.ExistLicense(licenseNumber); } catch (Exception ex) { exception += ex.Message; foundException = true; } try { valid.TimeAfter(formalDepartureTime, realDepartureTime, "formalDepartureTime", "realDepartureTime"); } catch (Exception ex) { exception += ex.Message; foundException = true; } try { valid.TimeAfter(lastPassedStopTime, nextStopTime, "formalDepartureTime", "realDepartureTime"); } catch (Exception ex) { exception += ex.Message; foundException = true; } try { valid.GoodInt(lastPassedStop); } catch (Exception ex) { exception += ex.Message; foundException = true; } //try //{ // valid.UserNameExist(lastPassedStop); //} //catch (Exception ex) //{ // exception += ex.Message; // foundException = true; //} try { valid.LineIdExist(lineId); } catch (Exception ex) { exception += ex.Message; foundException = true; } //if (foundException) // throw new Exception(exception); BusTravel busTravelBO = new BusTravel(licenseNumber, lineId, formalDepartureTime, realDepartureTime, lastPassedStop, lastPassedStopTime, nextStopTime, driverId); DO.BusTravel busTravelDO = busTravelBO.GetPropertiesFrom <DO.BusTravel, BO.BusTravel>(); dal.CreateBusTravel(busTravelDO); }
private void DoWorkLine(object sender, DoWorkEventArgs e) { var custom = e.Argument as CustomClass; var line = GetLine(custom.LD.Id); var timeLine = TravelTimeCalculate(line.Number, line.FirstStop, line.LastStop); BackgroundWorker bwDigital = custom.BW as BackgroundWorker; var timeStart = custom.LD.TimeStart; var timeSpanTimeStart = new TimeSpan(timeStart.Hour, timeStart.Minute, timeStart.Second); var timeEnd = custom.LD.TimeEnd; var timeSpanTimeEnd = new TimeSpan(timeEnd.TimeOfDay.Hours, timeEnd.TimeOfDay.Minutes, timeEnd.TimeOfDay.Seconds); DateTime dateTime; DateTime.TryParse(timeStart.Year + "/" + timeStart.Month + "/" + timeStart.Day + " " + 0 + ":" + 0 + ":" + 0, out dateTime); int counterProgress = 0; int lowerBound = 0; TimeSpan timeFrequency = new TimeSpan((custom.LD.TimeEnd - custom.LD.TimeStart).Ticks / custom.LD.Frequency); while (GetCurrentTime() < timeSpanTimeEnd) { for (; counterProgress < custom.LD.Frequency; counterProgress++) { if (GetCurrentTime() > timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress) && GetCurrentTime() < timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress) + timeLine) { var allBusTravels = GetAllBusTravels(); if (allBusTravels.Count() == 0 || GetAllBusTravels().ToList(). Find(bt => bt.FormalDepartureTime == (dateTime + timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress))) != null) { Bus bus = GetAllBussesReadyForDrive().First(); User user = GetAllDrivers().First(); UpdateBusStatus(0, bus.LicenseNumber); CreateBusTravel(bus.LicenseNumber, custom.LD.Id, dateTime + timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), dateTime + timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), GetStationByTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), GetCurrentTime(), line.Id).Code, dateTime + GetPassedStopTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), GetCurrentTime(), line.Id), dateTime + GetNextStopTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), GetCurrentTime(), line.Id), user.UserName); CreateUserTravel(user.UserName, line.Number, dateTime + timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress), dateTime + timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress) + timeLine); } } else if (GetCurrentTime() < timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * counterProgress)) { break; } } for (; lowerBound < counterProgress; lowerBound++) { if (timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * lowerBound) + timeLine < GetCurrentTime()) { BusTravel bt; try { bt = FindBusTravelWithLineNumberAndDepartureTime(line.Id, timeStart + TimeSpan.FromTicks(timeFrequency.Ticks * lowerBound)); } catch { continue; } UserTravel ut = GetDriverTravel(line.Number, timeStart + TimeSpan.FromTicks(timeFrequency.Ticks * lowerBound)); DeleteBusTravel(bt.Id); UpdateBusStatus(1, bt.LicenseNumber); DeleteUserTravel(ut.ID); } else { break; } } var aaaa = GetAllBusTravels(); for (int i = lowerBound; i < counterProgress; i++) { BusTravel bt = new BusTravel(); bt = FindBusTravelWithLineNumberAndDepartureTime(line.Id, timeStart + TimeSpan.FromTicks(timeFrequency.Ticks * i)); UpdateLastPassedStop((GetStationByTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * i), GetCurrentTime(), line.Id).Code), bt.Id); UpdateNextStopTime(dateTime + GetNextStopTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * i), GetCurrentTime(), line.Id), bt.Id); UpdateLastPassedStopTime(dateTime + GetPassedStopTime(timeSpanTimeStart + TimeSpan.FromTicks(timeFrequency.Ticks * i), GetCurrentTime(), line.Id), bt.Id); } Thread.Sleep(500); } }