// GET: User
        public ActionResult Index(IndexVM model)
        {
            if (HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser") == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            if (!HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser").IsAdmin)
            {
                return(RedirectToAction("Login", "Home"));
            }


            model.Page = model.Page <= 0
                ? 1
                : model.Page;

            model.ItemsPerPage = model.ItemsPerPage <= 0
                ? 10
                : model.ItemsPerPage;

            using RestaurantManagerContext context = new RestaurantManagerContext();
            model.Items = context.Users.OrderBy(i => i.Id)
                          .Skip((model.Page - 1) * model.ItemsPerPage)
                          .Take(model.ItemsPerPage)
                          .ToList();

            model.PagesCount = (int)Math.Ceiling(
                context.Users.Count() / (double)model.ItemsPerPage
                );

            return(View(model));
        }
        // GET: User/Edit/5
        public ActionResult Edit(int id)
        {
            if (HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser") == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            if (!HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser").IsAdmin)
            {
                return(RedirectToAction("Login", "Home"));
            }

            using RestaurantManagerContext context = new RestaurantManagerContext();
            User item = context.Users.Find(id);

            EditVM model = new EditVM
            {
                Id       = item.Id,
                Username = item.Username,
                Email    = item.Email,
                IsAdmin  = item.IsAdmin
            };

            return(View(model));
        }
        public ActionResult Edit(EditVM model)
        {
            if (HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser") == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            if (!HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser").IsAdmin)
            {
                return(RedirectToAction("Login", "Home"));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User item = new User
            {
                Id       = model.Id,
                Username = model.Username,
                Email    = model.Email,
                IsAdmin  = model.IsAdmin
            };

            using RestaurantManagerContext context = new RestaurantManagerContext();
            context.Users.Update(item);
            context.SaveChanges();

            return(RedirectToAction("Index", "User"));
        }
        public IActionResult Login(LoginVM model)
        {
            if (ModelState.IsValid)
            {
                using RestaurantManagerContext context = new RestaurantManagerContext();

                User loggedUser = context.Users.FirstOrDefault(u =>
                                                               u.Username == model.Username &&
                                                               u.Password == model.Password);

                if (loggedUser == null)
                {
                    ModelState.AddModelError("AuthError", "Invalid username and password!");
                }
                else
                {
                    LoggedUser lu = new LoggedUser
                    {
                        Id       = loggedUser.Id,
                        Username = loggedUser.Username,
                        Email    = loggedUser.Email,
                        IsAdmin  = loggedUser.IsAdmin,
                    };
                    HttpContext.Session.SetObjectAsJson("loggedUser", lu);
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #5
0
 public void Update(T model)
 {
     using (var context = new RestaurantManagerContext()) {
         context.Set <T>().Attach(model);
         context.Set <T>().Update(model);
         context.SaveChanges();
     }
 }
예제 #6
0
 public T GetWithMany(Func <T, bool> func, string with1, string with2)
 {
     using (var context = new RestaurantManagerContext()) {
         return(context.Set <T>()
                .Include(with1)
                .Include(with2)
                .FirstOrDefault(func));
     }
 }
        public ActionResult Create(CreateVM model)
        {
            //if (HttpContext.Session.GetObjectFromJson<LoggedUser>("loggedUser") == null)
            //    return RedirectToAction("Login", "Home");

            //if (!HttpContext.Session.GetObjectFromJson<LoggedUser>("loggedUser").IsAdmin)
            //    return RedirectToAction("Login", "Home");

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.Password == model.ConfirmPassword)
            {
                using RestaurantManagerContext context = new RestaurantManagerContext();
                if (context.Users.Count() == 0)
                {
                    User item = new User
                    {
                        Username = model.Username,
                        Password = model.ConfirmPassword,
                        Email    = model.Email,
                        IsAdmin  = true
                    };

                    context.Users.Add(item);
                    context.SaveChanges();
                }
                else
                {
                    User item = new User
                    {
                        Username = model.Username,
                        Password = model.ConfirmPassword,
                        Email    = model.Email,
                        IsAdmin  = false
                    };

                    context.Users.Add(item);
                    context.SaveChanges();
                }
            }
            return(RedirectToAction("Index", "User"));
        }
        // GET: User/Delete/5
        public ActionResult Delete(int id)
        {
            if (HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser") == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            if (!HttpContext.Session.GetObjectFromJson <LoggedUser>("loggedUser").IsAdmin)
            {
                return(RedirectToAction("Login", "Home"));
            }

            using RestaurantManagerContext context = new RestaurantManagerContext();
            context.Users.Remove(context.Users.Find(id));
            context.SaveChanges();

            return(RedirectToAction("Index", "User"));
        }
예제 #9
0
 public T Get(Func <T, bool> func)
 {
     using (var context = new RestaurantManagerContext()) {
         return(context.Set <T>().FirstOrDefault(func));
     }
 }
예제 #10
0
 public IEnumerable <T> GetAll()
 {
     using (var context = new RestaurantManagerContext()) {
         return(context.Set <T>().ToList());
     }
 }
예제 #11
0
 public IEnumerable <T> GetByWith(Func <T, bool> by, string with)
 {
     using (var context = new RestaurantManagerContext()) {
         return(context.Set <T>().Include(with).Where(by).ToList());
     }
 }
예제 #12
0
 public IEnumerable <T> GetBy(Func <T, bool> func)
 {
     using (var context = new RestaurantManagerContext()) {
         return(context.Set <T>().Where(func).ToList());
     }
 }
 public WaitersController()
 {
     _context = new RestaurantManagerContext();
 }
 public ReservationsController()
 {
     _context = new RestaurantManagerContext();
 }