Ejemplo n.º 1
0
        public ActionResult GetCalendarData(string start, string end, string licencePlate)
        {
            List <EventDTO>   events   = eventLogic.List(licencePlate);
            List <BookingDTO> bookings = bookingLogic.List(licencePlate);

            List <FullCalendarDTO> fullCalendars = new List <FullCalendarDTO>();

            if (events is null)
            {
            }
            else
            {
                foreach (EventDTO @event in events)
                {
                    fullCalendars.Add(new FullCalendarDTO {
                        Id = @event.Id, Libelle = @event.Libelle, Start = @event.Start_Date.ToString("yyyy-MM-dd"), End = @event.End_Date.ToString("yyyy-MM-dd")
                    });
                }

                foreach (BookingDTO booking in bookings)
                {
                    RequestBookingDTO requestBooking = requestBookingLogic.Get(booking.Id);

                    fullCalendars.Add(new FullCalendarDTO {
                        Id = booking.Id, Libelle = requestBooking.Reason
                    });
                }
            }


            return(Json(fullCalendars.Select(e => new { id = e.Id, title = e.Libelle, start = e.Start, end = e.End }), JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
 public RequestBookingDTO Insert(RequestBookingDTO _requestBooking)
 {
     using (CarRentalEntities context = new CarRentalEntities())
     {
         RequestBooking requestBooking = context.usp_RequestBooking_Insert(_requestBooking.is_Personal_Car_Available, _requestBooking.Reason, _requestBooking.Id_Status, _requestBooking.CreateBy).FirstOrDefault();
         return(requestBookingMapping.MapToRequestBookingDTO(requestBooking));
     }
 }
Ejemplo n.º 3
0
        public ActionResult RefuserBooking(int id)
        {
            RequestBookingDTO requestBooking = requestBookingLogic.GetByRequestBooking(id);

            requestBookingLogic.Update(id, 3);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        public ActionResult RendreCar(int kilometrage, int idBooking, string LicencePlate)
        {
            BookingDTO        booking        = bookingLogic.Get(idBooking);
            RequestBookingDTO requestBooking = requestBookingLogic.GetByRequestBooking(booking.id_Request_Booking);

            requestBookingLogic.Update(requestBooking.id, 4);

            carLogic.Update(LicencePlate, kilometrage);

            return(RedirectToAction("Index", "Booking"));
        }
Ejemplo n.º 5
0
        public ActionResult AssignationCar(string CarValue, int idBooking)
        {
            var licencePlate = CarValue;

            bookingLogic.Update(idBooking, licencePlate);
            BookingDTO        booking        = bookingLogic.Get(idBooking);
            RequestBookingDTO requestBooking = requestBookingLogic.GetByRequestBooking(booking.id_Request_Booking);

            requestBookingLogic.Update(requestBooking.id, 1);

            return(RedirectToAction("Index"));
        }
        public ActionResult Insert(RequestBookingDTO _requestBooking, int[] passagers, int?driver, int?driver2, StopOverDTO stopOver)
        {
            RequestBookingInsertViewsModel vm = new RequestBookingInsertViewsModel();

            vm.Addresses = PopulateAddress();
            vm.Users     = PopulateUsers();

            int idCurrentUser = (int)Session["userId"];

            Session["notifs"] = notificationLogic.ListAllForUser(idCurrentUser).FindAll(n => n.IsRead == 0).Count;

            return(View(vm));
        }
Ejemplo n.º 7
0
        public List <RequestBookingDTO> MapToListRequestBookingDTO(List <RequestBooking> requestsBooking)
        {
            List <RequestBookingDTO> retour = new List <RequestBookingDTO>();

            foreach (RequestBooking requestBooking in requestsBooking)
            {
                RequestBookingDTO newRequestBooking = new RequestBookingDTO
                {
                    Date      = requestBooking.Date,
                    id        = requestBooking.id,
                    Id_Status = requestBooking.Id_Status,
                    is_Personal_Car_Available = requestBooking.is_Personal_Car_Available,
                    Reason   = requestBooking.Reason,
                    CreateBy = (int)requestBooking.CreateBy
                };

                retour.Add(newRequestBooking);
            }

            return(retour);
        }
Ejemplo n.º 8
0
        public ActionResult Validation(int id)
        {
            BookingValidationViewsModel vm = new BookingValidationViewsModel();

            RequestBookingDTO requestBooking = requestBookingLogic.GetByRequestBooking(id);

            BookingDTO         booking         = bookingLogic.GetByRequestBooking(requestBooking.id);
            StopOverDTO        stopOver        = stopOverLogic.GetByBooking(booking.Id);
            List <UserDTO>     passagersAller  = utilisateurLogic.ListPassagers(booking.Id, 1);
            List <UserDTO>     passagersRetour = utilisateurLogic.ListPassagers(booking.Id, 0);
            StatusDTO          status          = statusLogic.GetStatus(requestBooking.Id_Status);
            StopOverAddressDTO stopOverAddress = stopOverAddressLogic.GetStopOverAddress(stopOver.Id);
            UserDTO            driverAller     = utilisateurLogic.GetDriver(booking.Id, 1);
            UserDTO            driverRetour    = utilisateurLogic.GetDriver(booking.Id, 0);
            AddressDTO         addressAller    = addressLogic.GetAddress(booking.Id);
            AddressDTO         addressRetour   = addressLogic.GetAddress(booking.Id);
            UserDTO            createdBy       = utilisateurLogic.Get(requestBooking.CreateBy);

            Booking _booking = new Booking
            {
                booking         = booking,
                requestBooking  = requestBooking,
                stopOver        = stopOver,
                passagerRetour  = passagersRetour,
                passagersAller  = passagersRetour,
                status          = status,
                stopOverAddress = stopOverAddress,
                driverAller     = driverAller,
                driverRetour    = driverRetour,
                addressRetour   = addressRetour,
                addressAller    = addressAller,
                createdBy       = createdBy
            };

            vm.Booking = _booking;

            return(View(vm));
        }
        /**
         * GetNotificationsTuples
         * Transforme une list de NotificationDTO en Tuple pour la NotificationIndexViewModel
         */
        private List <(NotificationDTO notification, RequestBookingDTO requestBooking, UserDTO user, string departureCity)> GetNotificationsTuples(List <NotificationDTO> list)
        {
            List <(NotificationDTO notification, RequestBookingDTO requestBooking, UserDTO user, string departureCity)> newList =
                new List <(NotificationDTO notification, RequestBookingDTO requestBooking, UserDTO user, string departureCity)>();

            if (list != null)
            {
                foreach (NotificationDTO notif in list)
                {
                    RequestBookingDTO reqBooking = new RequestBookingDTO();
                    reqBooking = requestBookingLogic.Get(notif.IdRequestBooking);

                    UserDTO user = new UserDTO();
                    user = userLogic.Get(reqBooking.CreateBy);

                    int        idBooking     = bookingLogic.GetByRequestBooking(reqBooking.id).Id;
                    AddressDTO address       = addressLogic.GetAddress(idBooking);
                    string     departureCity = "Non précisé";
                    if (address.Name != null)
                    {
                        departureCity = address.Name;
                    }
                    else if (address.Locality != null)
                    {
                        departureCity = address.Locality;
                    }

                    newList.Add((notif, reqBooking, user, departureCity));
                    if (notif.IsRead == 0)
                    {
                        notifLogic.MarkAsRead(notif.Id);
                    }
                }
            }

            return(newList);
        }
        public JsonResult AddRequestBooking(RequestBookingDTO requestBooking, int[] _passagers, int driver, int driver2, StopOverDTO stopOver, int addressDeparture, int addressArrival)
        {
            requestBooking.CreateBy = (int)Session["userID"];
            RequestBookingDTO requestBooking2 = requestBookingLogic.Insert(requestBooking);
            BookingDTO        booking         = bookingLogic.Insert(0, null, requestBooking2.id);
            NotificationDTO   notification    = new NotificationDTO
            {
                // CreationDateTimestamp default getdate en base
                IdRequestBooking = requestBooking2.id,
                IsForNewRequest  = 1,
                IsRead           = 0,
                IsForAdmin       = 0,
            };


            // Ajout des passagers
            if (_passagers != null)
            {
                for (int i = 0; i < _passagers.Length; i++)
                {
                    userBookingLogic.Insert(0, 1, booking.Id, _passagers[i]);
                    userBookingLogic.Insert(0, 0, booking.Id, _passagers[i]);

                    // Ajout des notification pour chaque passager
                    notification.IdUser = _passagers[i];
                    notificationLogic.Insert(notification);
                }
            }


            // Ajout des conducteurs. Ne pas oublier d'jaouter le driver retour.
            userBookingLogic.Insert(1, 1, booking.Id, driver);
            userBookingLogic.Insert(1, 0, booking.Id, driver2);

            // Ajout des notification pour les conducteurs
            notification.IdUser = driver;
            notificationLogic.Insert(notification);
            if (driver2 != null && driver2 != notification.IdUser)
            {
                notification.IdUser = driver2;
                notificationLogic.Insert(notification);
            }

            // Ajout de l'étape de base
            stopOver.Id_Booking        = booking.Id;
            stopOver.Id_Stop_Over_Type = 1;
            stopOver = stopOverLogic.Insert(stopOver);

            stopOverAddressLogic.Insert(addressDeparture, stopOver.Id, 1);
            stopOverAddressLogic.Insert(addressArrival, stopOver.Id, 0);

            List <UserDTO>     passagersAller  = utilisateurLogic.ListPassagers(booking.Id, 1);
            List <UserDTO>     passagersRetour = utilisateurLogic.ListPassagers(booking.Id, 0);
            StatusDTO          status          = statusLogic.GetStatus(requestBooking.Id_Status);
            StopOverAddressDTO stopOverAddress = stopOverAddressLogic.GetStopOverAddress(stopOver.Id);
            UserDTO            driverAller     = utilisateurLogic.GetDriver(booking.Id, 1);
            UserDTO            driverRetour    = utilisateurLogic.GetDriver(booking.Id, 0);
            AddressDTO         addressAller    = addressLogic.GetAddress(booking.Id, 1);
            AddressDTO         addressRetour   = addressLogic.GetAddress(booking.Id, 0);

            Booking _booking = new Booking
            {
                booking         = booking,
                requestBooking  = requestBooking,
                stopOver        = stopOver,
                passagersAller  = passagersAller,
                passagerRetour  = passagersRetour,
                status          = status,
                stopOverAddress = stopOverAddress,
                driverAller     = driverAller,
                driverRetour    = driverRetour,
                addressRetour   = addressAller,
                addressAller    = addressRetour
            };

            // Ajout des notifications pour les administrateurs
            List <UserDTO> admins      = roleLogic.Get_Users_With_Role("Administrateur");
            List <UserDTO> adminsToAdd = roleLogic.Get_Users_With_Role("Admin");

            admins.AddRange(adminsToAdd);

            notification.IsForAdmin = 1;
            if (admins.Count > 0)
            {
                foreach (UserDTO admin in admins)
                {
                    if (admin.Id != requestBooking.CreateBy)
                    {
                        notification.IdUser = admin.Id;
                        notificationLogic.Insert(notification);
                    }
                }
            }
            Session["notifs"] = notificationLogic.ListAllForUser((int)Session["userID"]).FindAll(n => n.IsRead == 0).Count;

            return(Json(_booking));
        }
Ejemplo n.º 11
0
 public RequestBookingDTO Insert(RequestBookingDTO requestBooking)
 {
     requestBooking.Id_Status = 2;
     return(requestBookingEngine.Insert(requestBooking));
 }