Пример #1
0
        public ActionResult UserRentals()
        {
            try
            {
                if (!IsLogged())
                {
                    return(RedirectToAction("Login", "Account"));
                }
                using (ISession session = database.MakeSession())
                {
                    ValidateAdminAndEmployeeForbiddenAccess(session);
                    var reader = GetReader(session);

                    var rentals     = session.QueryOver <Rental>().Where(x => x.Reader == reader).Where(x => x.Deleted == false).List();
                    var rentalsData = new List <CopiesStatusesModelView>();

                    foreach (var ren in rentals)
                    {
                        var rental = new CopiesStatusesModelView()
                        {
                            Id       = ren.Id,
                            CopyId   = ren.Copy.Id,
                            Reader   = ren.Reader.ToString(),
                            Title    = ren.Copy.Book.Title,
                            BookId   = ren.Copy.Book.Id,
                            DateFrom = ren.DateFrom,
                            DateTo   = ren.DateTo
                        };
                        rentalsData.Add(rental);
                    }

                    return(View(rentalsData));
                }
            }
            catch (UnauthorizedAccessException)
            {
                return(RedirectToAction("Forbidden", "Error"));
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
Пример #2
0
 // GET: Reservation
 public ActionResult Index()
 {
     try
     {
         if (!IsLogged())
         {
             return(RedirectToAction("Login", "Account"));
         }
         using (ISession session = database.MakeSession())
         {
             ValidateReaderForbiddenAccess(session);
             var reservations     = session.QueryOver <Reservation>().List();
             var reservationsData = new List <CopiesStatusesModelView>();
             foreach (var res in reservations)
             {
                 var reservation = new CopiesStatusesModelView()
                 {
                     Id       = res.Id,
                     CopyId   = res.Copy.Id,
                     Reader   = res.Reader.ToString(),
                     DateFrom = res.DateFrom,
                     Title    = res.Copy.Book.Title,
                     BookId   = res.Copy.Book.Id,
                     DateTo   = res.DateTo
                 };
                 reservationsData.Add(reservation);
             }
             return(View(reservationsData));
         }
     }
     catch (UnauthorizedAccessException)
     {
         return(RedirectToAction("Forbidden", "Error"));
     }
     catch (Exception)
     {
         return(RedirectToAction("Index", "Home"));
     }
 }
Пример #3
0
        // GET: Rental
        public ActionResult Index(bool deleted = false)
        {
            try
            {
                var smtp = new EASendMail.SmtpClient();

                if (!IsLogged())
                {
                    return(RedirectToAction("Login", "Account"));
                }
                using (ISession session = database.MakeSession())
                {
                    ValidateReaderForbiddenAccess(session);
                    IList <Rental> rentals;
                    bool           sendLateEmails          = false;
                    bool           sendCloseToReturnEmails = false;


                    if (deleted)
                    {
                        rentals = session.QueryOver <Rental>().Where(Restrictions.Eq("Deleted", true))
                                  .OrderBy(x => x.DateFrom).Desc().List();
                        ViewBag.Info          = "Past user rentals";
                        ViewBag.showReturnBtn = false;
                    }
                    else
                    {
                        rentals = session.QueryOver <Rental>().Where(Restrictions.Eq("Deleted", false)).
                                  OrderBy(x => x.DateFrom).Desc().List();
                        ViewBag.Info          = "Current user rentals";
                        ViewBag.showReturnBtn = true;
                    }
                    var rentalsData = new List <CopiesStatusesModelView>();


                    foreach (var ren in rentals)
                    {
                        var rental = new CopiesStatusesModelView()
                        {
                            Id       = ren.Id,
                            CopyId   = ren.Copy.Id,
                            Reader   = ren.Reader.ToString(),
                            Title    = ren.Copy.Book.Title,
                            BookId   = ren.Copy.Book.Id,
                            DateFrom = ren.DateFrom,
                            DateTo   = ren.DateTo
                        };
                        //sprawdzenie czy minal termin nieodebranych ksiazek

                        if (!deleted)
                        {
                            if (IsRentalLate(ren))
                            {
                                sendLateEmails = true;
                            }
                            else if (IsRentalCloseToReturn(ren))
                            {
                                sendCloseToReturnEmails = true;
                            }
                        }
                        rentalsData.Add(rental);
                    }

                    if (sendLateEmails)
                    {
                        ViewBag.ShowLateRentalButton = true;
                    }
                    if (sendCloseToReturnEmails)
                    {
                        ViewBag.ShowCloseToReturnRentalButton = true;
                    }

                    return(View(rentalsData));
                }
            }
            catch (UnauthorizedAccessException)
            {
                return(RedirectToAction("Forbidden", "Error"));
            }
            catch (Exception e)
            {
                Debug.Write(e.Message);
                return(RedirectToAction("Index", "Home"));
            }
        }