示例#1
0
        public async Task <List <Seat> > GetSeatByHallSegmentIdAsync(long HallSegmentId)
        {
            MrsContext  mrs   = new MrsContext();
            List <Seat> seats = await ListAllAsync();

            List <SeatReservation> seatReservations = mrs.SeatReservations.ToList();

            /* Upit za slobodna mesta
             * SELECT seats.SeatId,seats.SeatNumber FROM seats LEFT JOIN seatreservation on seats.SeatId=seatreservation.SeatId
             * where (seatreservation.IsActive=0 AND seatreservation.IsReserved=0)  or seatreservation.SeatId is null
             */
            // var xx = seatReservations.FindAll(s => s.IsActive == false && s.IsReserved == false);
            var query = (from aa in seats
                         join bb in seatReservations.Where(s => s.IsReserved == true && s.IsActive == true)
                         on aa.Id equals bb.SeatId into cc
                         from x in cc.DefaultIfEmpty()
                         where x == null
                         select new Seat
            {
                Id = (int)aa.Id,
                SeatNumber = aa.SeatNumber,
                HallSegmentId = (int)aa.HallSegmentId
            }).ToList();

            var seatList = query.Where(s => s.HallSegmentId == HallSegmentId);

            return(seatList.ToList());
        }
示例#2
0
        public ActionResult Edit()
        {
            MrsContext mrs    = new MrsContext();
            int        idUser = int.Parse(HttpContext.Session.GetString("Id"));
            var        usr    = mrs.Users.Where(u => u.Id == idUser).FirstOrDefault();

            return(View(usr));
        }
        //GET:/Reservation/Delete/5

        public async Task <ActionResult> Delete(long?id)
        {
            MrsContext mrs = new MrsContext();

            var sr = await mrs.SeatReservations.SingleOrDefaultAsync(m => m.Id == id);

            sr.Screening            = mrs.Screenings.Single(s => s.Id == sr.ScreeningId);
            sr.Screening.Projection = mrs.Projections.Single(s => s.Id == sr.Screening.ProjectionId);
            sr.Seat = mrs.Seats.Single(s => s.Id == sr.SeatId);

            return(View(sr));
        }
示例#4
0
        public ActionResult Profil(User user)
        {
            MrsContext mrs    = new MrsContext();
            int        idUser = int.Parse(HttpContext.Session.GetString("Id"));
            var        usr    = mrs.Users.Where(u => u.Id == idUser).FirstOrDefault();

            TempData["User"] = usr;

            if (HttpContext.Session.GetString("Id") != null)
            {
                return(View(usr));
            }
            return(Login());
        }
        public ActionResult MojeRezervacije()
        {
            int                    idUser           = int.Parse(HttpContext.Session.GetString("Id"));
            MrsContext             mrs              = new MrsContext();
            List <SeatReservation> seatReservations = mrs.SeatReservations.ToList().FindAll(i => i.IsActive && i.UserId == idUser);

            foreach (SeatReservation sr in seatReservations)
            {
                sr.Screening            = mrs.Screenings.Single(s => s.Id == sr.ScreeningId);
                sr.Screening.Projection = mrs.Projections.Single(s => s.Id == sr.Screening.ProjectionId);
                sr.Seat = mrs.Seats.Single(s => s.Id == sr.SeatId);
                sr.Screening.CultureObjecsHall = mrs.CultureObjectHalls.Single(s => s.Id == sr.Screening.CultureObjectHallId);
                sr.Screening.CultureObjecsHall.CultureObject = mrs.CultureObjects.Single(s => s.Id == sr.Screening.CultureObjecsHall.CultureObjectId);
                //sr.Screening.Projection=mrs
            }
            return(View(seatReservations));
        }
 public ActionResult Reservate(ReservationItemViewModel reservationItemViewModel)
 {
     if (ModelState.IsValid)
     {
         MrsContext      mrs = new MrsContext();
         SeatReservation sr  = new SeatReservation();
         sr.UserId      = int.Parse(HttpContext.Session.GetString("Id"));
         sr.IsReserved  = true;
         sr.IsPaid      = false;
         sr.SeatId      = reservationItemViewModel.SeatId;
         sr.IsActive    = true;
         sr.ScreeningId = reservationItemViewModel.ScreeningId;
         mrs.SeatReservations.Add(sr);
         mrs.SaveChanges();
     }
     return(RedirectToAction("Index"));
 }
示例#7
0
 public ActionResult Register(User user)
 {
     if (ModelState.IsValid)
     {
         user.AccountId = 1;
         using (MrsContext mrs = new MrsContext())
         {
             mrs.Users.Add(user);
             mrs.SaveChanges();
         }
         ModelState.Clear();
         //ViewBag.Message = user.FirstName + " " + user.LastName + " successfully registered.";
         TempData["Id"]           = user.Id.ToString();
         TempData["EmailAddress"] = user.EmailAddress.ToString();
         return(RedirectToAction("LoggedIn"));
     }
     return(View());
 }
示例#8
0
        public ActionResult Edit(User user)
        {
            if (ModelState.IsValid)
            {
                using (MrsContext mrs = new MrsContext())
                {
                    int idUser = int.Parse(HttpContext.Session.GetString("Id"));
                    user.Id = idUser;
                    mrs.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

                    user.AccountId = 1;

                    mrs.SaveChanges();
                    return(RedirectToAction("Profil"));
                }
            }
            return(View(user));
        }
        public async Task <ActionResult> Index()
        {
            var modelCOT = await _cultureObjectsViewModelService.GetAllTheatersForUnregisteredUsers();

            var modelCOC = await _cultureObjectsViewModelService.GetAllCinemasForUnregisteredUsers();

            modelCOC.Items.AddRange(modelCOT.Items);

            ViewModels.Reservation.ReservationItemViewModel vm = new ViewModels.Reservation.ReservationItemViewModel();
            IEnumerable <CinemaItemViewModel> ttt = modelCOC.Items;

            vm.MoviesList = new SelectList(ttt, "Id", "Name");

            MrsContext mrs            = new MrsContext();
            var        getProjections = mrs.Projections.ToList();

            vm.ProjectionList = new SelectList(getProjections, "Id", "ProjectionName");

            return(View(vm));
        }
示例#10
0
        public ActionResult Login(User user)
        {
            using (MrsContext mrs = new MrsContext())
            {
                var usr = mrs.Users.Where(u => u.EmailAddress == user.EmailAddress && u.Password == user.Password).FirstOrDefault();
                if (usr != null)
                {
                    HttpContext.Session.SetString("Id", usr.Id.ToString());
                    TempData["Id"]           = usr.Id.ToString();
                    TempData["EmailAddress"] = usr.EmailAddress.ToString();

                    return(RedirectToAction("LoggedIn"));
                }
                else
                {
                    ModelState.AddModelError("", "Email ili password nisu korektni.");
                }
            }
            return(View());
        }
        public ActionResult PoseceniObjekti()
        {
            int                    idUser           = int.Parse(HttpContext.Session.GetString("Id"));
            MrsContext             mrs              = new MrsContext();
            List <SeatReservation> seatReservations = mrs.SeatReservations.ToList().FindAll(i => i.UserId == idUser);

            foreach (SeatReservation sr in seatReservations)
            {
                sr.Screening = mrs.Screenings.Single(s => s.Id == sr.ScreeningId);
                if (sr.Screening.ScreenStartDateTime < DateTime.Now)
                {
                    {
                        sr.Screening = mrs.Screenings.Single(s => s.Id == sr.ScreeningId);
                        sr.Screening.CultureObjecsHall = mrs.CultureObjectHalls.Single(s => s.Id == sr.Screening.CultureObjectHallId);
                        sr.Screening.CultureObjecsHall.CultureObject = mrs.CultureObjects.Single(s => s.Id == sr.Screening.CultureObjecsHall.CultureObjectId);
                    }
                }
            }
            return(View(seatReservations));
        }
        public async Task <ActionResult> DeleteConfirmed(long id)
        {
            MrsContext mrs = new MrsContext();

            var sr = await mrs.SeatReservations.SingleOrDefaultAsync(m => m.Id == id);

            sr.Screening = mrs.Screenings.Single(s => s.Id == sr.ScreeningId);
            DateTime dateToday  = DateTime.Now;
            DateTime srdatetime = sr.Screening.ScreenStartDateTime;

            TimeSpan difference = dateToday.Subtract(srdatetime);

            double totalMinutes = difference.TotalMinutes;

            if (Math.Abs(totalMinutes) > 30)
            {
                mrs.SeatReservations.Remove(sr);
                mrs.SaveChanges();
                return(RedirectToAction("MojeRezervacije"));
            }
            //else { ViewBag.Message("Ne mozete otkazati za manje od 30 minuta pre projekcije!"); }
            return(RedirectToAction("MojeRezervacije"));
        }
示例#13
0
        public async Task <IActionResult> SignIn(LoginViewModel model, string returnUrl = null)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            ViewData["ReturnUrl"] = returnUrl;
            using (MrsContext mrs = new MrsContext())
            {
                var usr = mrs.Users.Where(u => u.EmailAddress == model.Email && u.Password == model.Password).FirstOrDefault();
                if (usr != null)
                {
                    var id = usr.Id.ToString();

                    HttpContext.Session.SetString("Id", id);
                }
            }
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false);

            if (result.RequiresTwoFactor)
            {
                return(RedirectToAction(nameof(LoginWith2fa), new { returnUrl, model.RememberMe }));
            }
            if (result.Succeeded)
            {
                string anonymousId = Request.Cookies[Constants.CULTURE_COOKIENAME];
                if (!String.IsNullOrEmpty(anonymousId))
                {
                    Response.Cookies.Delete(Constants.CULTURE_COOKIENAME);
                }
                //return RedirectToLocal(returnUrl);
                return(RedirectToAction("Index", "Profile"));
            }
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            return(View(model));
        }
示例#14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RemarkRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public RemarkRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AccountRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public AccountRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CultureObjectRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public CultureObjectRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ActorRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public ActorRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PropAddRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public PropAddRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#19
0
 public ThematicPropsController(MrsContext context)
 {
     _context = context;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HallSegmentRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public HallSegmentRepository(MrsContext dbContext) : base(dbContext)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ScreeningRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public ScreeningRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProjectionRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public ProjectionRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SeatRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public SeatRepository(MrsContext dbContext) : base(dbContext)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ThematicPropRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public ThematicPropRepository(MrsContext dbContext) : base(dbContext)
 {
 }
示例#25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GenreRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public GenreRepository(MrsContext dbContext)
     : base(dbContext)
 {
 }
示例#26
0
 public PropAdsController(MrsContext context)
 {
     _context = context;
 }
示例#27
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserRepository"/> class.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 public UserRepository(MrsContext dbContext) : base(dbContext)
 {
 }