/// <summary> /// add new userTravel to database /// </summary> /// <param name="userTravel"></param> public void CreateUserTravel(UserTravel userTravel) { List <UserTravel> UserTravelList = XMLTools.LoadListFromXMLSerializer <UserTravel>(userTravelPath); userTravel.Valid = true; try { GetUserTravel(userTravel.IdTravel); } catch (Exception ex) { if (ex.Message == "no user with such license number!!") { UserTravelList.Add(userTravel); } else if (ex.Message == "bus is not valid!!") { UserTravelList.Find(ut => ut.IdTravel == userTravel.IdTravel).Valid = true; } XMLTools.SaveListToXMLSerializer(UserTravelList, userTravelPath); return; } throw new Exception("user already exists!!!"); }
public void DeleteUserTravel(UserTravel userTravel) { if (userTravel.lineID != null) { DataSource.User_TravelList.Remove(userTravel); } else { throw new Exception("userTravel doesn't exist!!"); } }
/// <summary> /// request a UserTravel according to a predicate /// </summary> /// <param name="Id"></param> /// <returns></returns> public UserTravel RequestUserTravel(Predicate <UserTravel> pr = null) { UserTravel ret = DataSource.UserTravelList.Find(userTravel => pr(userTravel)); if (ret == null) { throw new DOBusException("no userTravel that meets these conditions!"); } if (ret.Valid == false) { throw new DOBusException("userTravel that meets these conditions is not valid"); } return(ret.GetPropertiesFrom <UserTravel, UserTravel>()); }
public void UpdateUserTravel(UserTravel userTravel) { int indLine; if (userTravel.lineID != null) { indLine = DataSource.User_TravelList.FindIndex(l => l.lineID == userTravel.lineID); DataSource.User_TravelList[indLine] = userTravel; } else { throw new Exception("userTravel doesn't exist!!"); } }
/// <summary> /// add new userTravel to database /// </summary> /// <param name="userTravel"></param> public void CreateUserTravel(UserTravel userTravel) { userTravel.Valid = true; UserTravel a = new UserTravel(); try { a = GetUserTravel(userTravel.IdTravel); } catch (DOBadBusIdException ex) { if (ex.Message == "no userTravel with such license number!!") { DataSource.UserTravelList.Add(userTravel); } else if (ex.Message == "bus is not valid!!") { DataSource.UserTravelList.Add(userTravel); } return; } throw new DOBadBusIdException(userTravel.IdTravel, "userTravel already exists!!!"); }
public void CreateUserTravel(string userName, long lineNumber, DateTime onStopTime, DateTime offStopTime) { string exception = ""; bool foundException = false; try { //userName } catch (BOBadBusIdException ex) { exception += ex.Message; foundException = true; } try { //validate lineNumber } catch (BOBadBusIdException ex) { if (!foundException) { exception += ex.Message; foundException = true; } } try { //onStopTime } catch (BOBadBusIdException ex) { if (!foundException) { exception += ex.Message; foundException = true; } } try { //OffStopTime } catch (BOBusException ex) { exception += ex.Message; foundException = true; } if (foundException) { throw new BOBusException("There is something wrong with your input." + "Please Check these things :\n" + exception); //להוסיף את האינפוט שלו עם דולר } UserTravel userTravelBO = new UserTravel(userName, lineNumber, onStopTime, offStopTime); DO.UserTravel userTravelDO = userTravelBO.GetPropertiesFrom <DO.UserTravel, BO.UserTravel>(); try { dal.CreateUserTravel(userTravelDO); } catch (DO.DOBadBusIdException ex) { throw new BODOBadBusIdException("cant create this userTravel", ex); } }
public void CreateUserTravel(UserTravel userTravel) { DataSource.User_TravelList.Add(userTravel); }
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); } }