/// <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!!!");
        }
Exemplo n.º 2
0
        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!!");
     }
 }
Exemplo n.º 4
0
        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>());
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 11
0
        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);
            }
        }