/// <summary> delete registeration of driver from the db
        /// </summary>
        public static void DeleteRegisterationDriver(TravelingDriverDTO traveling)
        {
            ///delete from TravelingDriver
            TravelingDriverDTO travelingDriver = TravelingDriverConverters.GetTravelingDTO(TravelingDriverDal.GetTraveling(traveling.TravelingIdDriver));

            travelingDriver.FromDate = traveling.FromDate;
            travelingDriver.ToDate   = traveling.FromDate;
            TravelingDriverBL.DeleteTraveling(travelingDriver);
            ///delete from Registeration
            List <RegisterationDTO> registerationInRange = RegisterationConverters.GetListRegisterationDTO(RegisterationDal.GetRegByIdDInRange(traveling.TravelingIdDriver, traveling.FromDate, traveling.ToDate));

            foreach (var reg in registerationInRange)
            {
                try
                {
                    Mail.sendMailCancelToP(reg, traveling.FromDate, traveling.ToDate);
                }
                catch
                {
                    throw;
                }
                try
                {
                    PaymentBL.PayToPassengerCancel(reg, traveling.FromDate, traveling.ToDate);
                }
                catch
                {
                    throw;
                }
            }

            List <RegisterationDTO> registerations = GetRegisterationByDriverId(traveling.TravelingIdDriver);

            DeleteRangeRegDriver(registerations, traveling.FromDate.Date, traveling.ToDate);
        }
        /// <summary> delete traveling from the db
        /// </summary>
        public static void DeleteTraveling(TravelingDriverDTO traveling)
        {
            TravelingDriver travelingD = TravelingDriverDal.GetTraveling(traveling.TravelingIdDriver);

            if (travelingD.FromDate.Date == traveling.FromDate.Date && travelingD.ToDate.Date == traveling.ToDate.Date)
            {
                TravelingDriverDal.DeleteTraveling(travelingD.TravelingIdDriver);
            }
            else
            {
                TravelingDriverDal.DeleteTravelingRange(TravelingDriverConverters.GetTraveling(traveling));
            }
        }
        /// <summary> add a new traveling in the db
        /// </summary>
        public static void Add(TravelingDriverDTO travelingD)
        {
            TravelingDriver t = TravelingDriverConverters.GetTraveling(travelingD);

            t.TravelingIdDriver          = TravelingDriverDal.AddTraveling(t);
            travelingD.TravelingIdDriver = t.TravelingIdDriver;
            TravelDriverRangeDAL.AddTravelRange(t);
            List <TravelingPassenger> travelPassengersSuitable = TravelingPassengerDal.GetTravelSuitableP(t);

            foreach (var travelP in travelPassengersSuitable)
            {
                Mail.sendMailSuitableDriver(travelP, travelingD);
            }
        }
 /// <summary> find unattached travelings by identity
 /// </summary>
 public static object GetTravelUnAttached(int id)
 {
     return(TravelingDriverConverters.GetListTravelingsDTO(DAL.TravelingDriverDal.GetTravelNotAttached(id)));
 }
        /// <summary> return all the match travelings to travelingPassenger
        /// </summary>
        public static List <TravelingDriverDTO> GetTravelingsToPassenger(int id)
        {
            TravelingPassenger t = TravelingPassengerDal.GetTraveling(id);

            return(TravelingDriverConverters.GetListTravelingsDTO(DAL.TravelingDriverDal.GetTravelingsToPassenger(t)));
        }
 /// <summary> find traveling by identity
 /// </summary>
 public static TravelingDriverDTO GetTraveling(int id)
 {
     return(TravelingDriverConverters.GetTravelingDTO(DAL.TravelingDriverDal.GetTraveling(id)));
 }
 /// <summary> return all the travelings by identity
 /// </summary>
 public static List <TravelingDriverDTO> GetTravelings(int id)
 {
     return(TravelingDriverConverters.GetListTravelingsDTO(TravelingDriverDal.GetTravelings(id)));
 }
 /// <summary> find traveling by identity
 /// </summary>
 public static List <TravelingDriverDTO> GetTravelings()
 {
     return(TravelingDriverConverters.GetListTravelingsDTO(DAL.TravelingDriverDal.GetTravelings()));
 }