public static void AddRegisteration(Registeration registeration)
        {
            try
            {
                using (Travel_In_GroupDBEntities ctx = new Travel_In_GroupDBEntities())
                {
                    TravelingDriver    travelingDriver    = ctx.TravelingDrivers.FirstOrDefault(w => w.TravelingIdDriver == registeration.TravelingIdDriver);
                    TravelingPassenger travelingPassenger = ctx.TravelingPassengers.FirstOrDefault(w => w.TravelingIdPassenger == registeration.TravelingIdPassenger);
                    registeration.TravelingDriver    = travelingDriver;
                    registeration.TravelingPassenger = travelingPassenger;
                    travelingPassenger.IsEmbedded    = true;

                    TimeSpan timeSpan = registeration.TravelingPassenger.ToDate - registeration.TravelingPassenger.FromDate;
                    int      range    = timeSpan.Days;
                    DateTime date     = registeration.TravelingPassenger.FromDate;
                    TimeSpan ts       = new TimeSpan(registeration.TravelingDriver.Time.Hours, registeration.TravelingDriver.Time.Minutes, registeration.TravelingDriver.Time.Seconds);
                    date = date + ts;

                    Registeration newRegisteration = new Registeration()
                    {
                        TravelingIdDriver    = registeration.TravelingIdDriver,
                        TravelingIdPassenger = registeration.TravelingIdPassenger,
                        Date               = DateTime.Now,
                        TravelingDriver    = travelingDriver,
                        TravelingPassenger = travelingPassenger
                    };
                    ctx.Registerations.Add(newRegisteration);
                    ctx.SaveChanges();

                    //לולאה על כל טווח הנסיעה
                    for (int i = 0; i < range; i++)
                    {
                        if (registeration.TravelingPassenger.Weekday.Contains(((int)date.DayOfWeek + 1).ToString()))
                        {
                            var q = ctx.TravelDriverRanges.FirstOrDefault(t => t.Id == travelingDriver.TravelingIdDriver && t.Date == date.Date);
                            q.NumSeatsAvailable = q.NumSeatsAvailable - 1;

                            RegistrationDateRange registrationDateRange = new RegistrationDateRange()
                            {
                                Id              = newRegisteration.Id,
                                DateInRange     = date,
                                IsActive        = true,
                                IsComplain      = false,
                                NumComplainants = 0,
                                NumPassengers   = 1
                            };
                            registrationDateRange.Registeration = newRegisteration;
                            ctx.RegistrationDateRanges.Add(registrationDateRange);
                            ctx.SaveChanges();
                        }
                        date = date.AddDays(1);
                    }
                }
            }
            catch { throw; }
        }
        public static bool isNow(RegistrationDateRange dateRange)
        {
            DateTime d = new DateTime();

            d = DateTime.Now;
            TimeSpan timeSpan = d.TimeOfDay - dateRange.DateInRange.TimeOfDay;

            if (dateRange.DateInRange.Date == d.Date && timeSpan.Minutes <= -30)
            {
                return(true);
            }
            return(false);
        }
예제 #3
0
        public static RegistrationDateRange GetDateRange(RegistrationDateRangeDTO dtoRegDateRange)
        {
            RegistrationDateRange registeration = new RegistrationDateRange()
            {
                Id              = dtoRegDateRange.Id,
                DateInRange     = dtoRegDateRange.DateInRange,
                IsActive        = dtoRegDateRange.IsActive,
                IsComplain      = dtoRegDateRange.IsComplain,
                NumComplainants = dtoRegDateRange.NumComplainants,
                NumPassengers   = dtoRegDateRange.NumPassengers
            };

            return(registeration);
        }
예제 #4
0
        public static RegistrationDateRangeDTO GetDateRangeDTO(RegistrationDateRange registrationDateRange)
        {
            if (registrationDateRange == null)
            {
                return(null);
            }
            RegistrationDateRangeDTO registrationDateRangeDTO = new RegistrationDateRangeDTO()
            {
                Id              = registrationDateRange.Id,
                DateInRange     = registrationDateRange.DateInRange,
                IsActive        = registrationDateRange.IsActive,
                IsComplain      = registrationDateRange.IsComplain,
                NumComplainants = registrationDateRange.NumComplainants,
                NumPassengers   = registrationDateRange.NumPassengers
            };

            return(registrationDateRangeDTO);

            ;
        }
        private static bool isComplain(RegistrationDateRangeDTO traveling)
        {
            RegistrationDateRange regDate = RegistrationDateRangeDal.GetDate(traveling.Id, traveling.DateInRange);

            return(regDate.IsComplain);
        }