Esempio n. 1
0
 public IActionResult Register(RegisterViewModel model)
 {
     if (ModelState.IsValid)
     {
         PubUsers user = _context.AddPubUser(new PubUsers
         {
             UserFirstName  = model.UserFirstName,
             UserLastName   = model.UserLastName,
             UserPassword   = model.UserPassword,
             UserAccessRank = UserAccessRank.Customer
         });
         if (!(user == null))
         {    //User created, ID stored in result
             ViewBag.LogInError = false;
             //---------LOG IN USER---------
             if (LogInUser(user) == false)
             {
                 ViewBag.LogInError = true;
             }
             ViewBag.User = user;
             return(View("RegistrationSuccess"));
         }
         else
         {
             ModelState.AddModelError("", "An error occured, could not create a new account.");
             //ERROR, user not created
         }
     }
     return(View(model));
 }
 public IActionResult Details(int?id)
 {
     if (id != null && id > 0)
     {
         PubItems Item = _context.GetPubItem((int)id);
         if (Item != null)
         {
             UserAccessRank userAccessRank = UserAccessRank.Customer;
             var            Session        = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders
             if (Session != null)
             {
                 PubSessions pubSession = _context.GetPubSession(Session); //get session info
                 if (pubSession != null)                                   //session exists
                 {
                     if (pubSession.UserId > 0)                            //if a user is logged in...
                     {
                         PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                         if (pubUser != null) //if user exists
                         {
                             userAccessRank = pubUser.UserAccessRank;
                         }
                     }
                 }
             }
             if (Item.ItemOnSale || userAccessRank == UserAccessRank.Admin)
             {
                 ViewBag.UserAccessRank = userAccessRank; //get access rank as admins will be able be able to press a button to go to edit item page.
                 ViewBag.Item           = Item;
                 return(View(new AddOrderItemViewModel()));
             }
         }
     }
     return(RedirectToAction("Index"));
 }
        public IActionResult Edit(EditItemViewModel model)
        {
            var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders

            if (Session != null)
            {
                PubSessions pubSession = _context.GetPubSession(Session); //get session info
                if (pubSession != null)                                   //session exists
                {
                    if (pubSession.UserId > 0)                            //if a user is logged in...
                    {
                        PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                        if (pubUser != null && pubUser.UserAccessRank == UserAccessRank.Admin) //if user exists
                        {
                            if (ModelState.IsValid)                                            //user is an admin, allow access to editing.
                            {
                                PubItems EditedItem = new PubItems()
                                {
                                    ItemId          = model.ItemID,
                                    ItemDescription = model.ItemDescription,
                                    ItemName        = model.ItemName,
                                    ItemOnSale      = model.ItemOnSale,
                                    ItemPrice       = model.ItemPrice,
                                    ItemStock       = model.ItemStock,
                                    ItemType        = model.ItemType,
                                    ItemImagePath   = model.ItemExistingImagePath
                                };

                                if (model.ItemImage != null)
                                {
                                    if (model.ItemExistingImagePath != null)
                                    {
                                        string existingFilePath = Path.Combine(webHostEnvironment.WebRootPath, "images", model.ItemExistingImagePath);
                                        System.IO.File.Delete(existingFilePath);
                                    }
                                    EditedItem.ItemImagePath = ProcessUploadedFile(model);
                                }

                                //int result = _context.AddPubItem();

                                if (_context.EditPubItem(EditedItem) == true)
                                {
                                    return(RedirectToAction("Details", new { id = EditedItem.ItemId }));
                                }
                                else
                                {
                                    ModelState.AddModelError("", "An error occured, could not create a new item.");
                                    //ERROR: item was not added
                                }
                            }
                            return(View(model));
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 4
0
        private bool LogInUser(PubUsers User)
        {
            //string UniqueFileName = Guid.NewGuid().ToString();
            string SessionString = HttpContext.Session.GetString("PubSession");

            if (SessionString != null) //session already exists, put user in existing session
            {
                PubSessions Session = _context.GetPubSession(SessionString);
                if (Session != null)
                {
                    int OrderBasketID;
                    if (User.UserOrderBasketID > 0)
                    {
                        OrderBasketID = User.UserOrderBasketID;
                    }
                    else
                    {
                        OrderBasketID = Session.OrderBasketId;
                        if (_context.UpdatePubUserOrderBasket(User.UserId, OrderBasketID) == false)
                        {
                            return(false);
                        }
                    }
                    if (_context.UpdatePubSession(SessionString, User.UserId, OrderBasketID))
                    {
                        return(true);
                    }
                    else
                    {
                        //error
                        return(false);
                    }
                }
            }
            //create session with user
            SessionString = _context.AddPubSession(User.UserId, User.UserOrderBasketID);
            if (SessionString != null)
            {
                HttpContext.Session.SetString("PubSession", SessionString);
                return(true);
            }
            else
            {
                ModelState.AddModelError("ERROR", "An Error has occoured, you could not be logged in.");
                return(false);
            }
        }
Esempio n. 5
0
        public IActionResult Index(int?UserID, int?PageNumber)         //get user id
        {
            var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders

            if (Session != null)
            {
                PubSessions pubSession = _context.GetPubSession(Session); //get session info
                if (pubSession != null)                                   //session exists
                {
                    if (pubSession.UserId > 0)                            //if a user is logged in...
                    {
                        PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                        if (pubUser != null) //if user exists
                        {
                            int?ID;
                            if (pubUser.UserAccessRank == Models.Enum.UserAccessRank.Admin)
                            {
                                if (UserID != null && UserID > 0)
                                {
                                    ID = UserID;
                                }
                                else
                                {
                                    ID = null;
                                }
                            }
                            else
                            {
                                ID = pubUser.UserId;
                            }
                            int pageNumber = PageNumber ?? 0;
                            ViewBag.UserAccessRank     = pubUser.UserAccessRank;
                            ViewBag.PubOrdersViewModel = _context.GetPubOrders(ID, pageNumber);
                            return(View(new FilterOrdersViewModel {
                                UserID = ID, PageNumber = pageNumber
                            }));
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 6
0
        public IActionResult Order(int?id)
        {
            object data;

            TempData.TryGetValue("ToastMessage", out data);
            if (data != null)
            {
                ViewBag.Toast = JsonSerializer.Deserialize <ToastAlertViewModel>(data as string);
            }
            if (id != null && id > 0)                                      //check that user has given an id and that the ID given is bigger than 0 (all ids are bigger than 0)
            {
                var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view an order
                if (Session != null)
                {
                    PubSessions pubSession = _context.GetPubSession(Session); //get session info
                    if (pubSession != null)                                   //session exists
                    {
                        if (pubSession.UserId > 0)                            //if a user is logged in...
                        {
                            PubUsers pubUsers = _context.GetPubUser(pubSession.UserId);
                            if (pubUsers != null)
                            {
                                Get_PubOrderViewModel OrderDetails = _context.GetPubOrder((int)id);
                                if (OrderDetails != null && (OrderDetails.UserId == pubUsers.UserId || pubUsers.UserAccessRank == Models.Enum.UserAccessRank.Admin)) //only logged in user and admins are allowed to view.
                                {
                                    OrderViewModel orderViewModel = new OrderViewModel
                                    {
                                        OrderDetails = OrderDetails,
                                        OrderItems   = _context.GetPubOrderItems((int)id)
                                    };
                                    ViewBag.LoggedInUserID = pubUsers.UserId;
                                    ViewBag.UserAccessRank = pubUsers.UserAccessRank;
                                    return(View(orderViewModel));
                                }
                            }
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
        public IActionResult Create()
        {
            var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders

            if (Session != null)
            {
                PubSessions pubSession = _context.GetPubSession(Session); //get session info
                if (pubSession != null)                                   //session exists
                {
                    if (pubSession.UserId > 0)                            //if a user is logged in...
                    {
                        PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                        if (pubUser != null && pubUser.UserAccessRank == UserAccessRank.Admin) //if user exists and is an admin
                        {
                            return(View(new CreateItemViewModel()));
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
        public IActionResult Edit(int?id)
        {
            if (id != null)
            {
                var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders
                if (Session != null)
                {
                    PubSessions pubSession = _context.GetPubSession(Session); //get session info
                    if (pubSession != null)                                   //session exists
                    {
                        if (pubSession.UserId > 0)                            //if a user is logged in...
                        {
                            PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                            if (pubUser != null && pubUser.UserAccessRank == UserAccessRank.Admin) //if user exists and is an admin then allow access to edit page.
                            {
                                int      itemID = (int)id;
                                PubItems item   = _context.GetPubItem(itemID);

                                if (item != null)
                                {
                                    EditItemViewModel model = new EditItemViewModel
                                    {
                                        ItemID = itemID,
                                        ItemExistingImagePath = item.ItemImagePath,
                                        ItemDescription       = item.ItemDescription,
                                        ItemName   = item.ItemName,
                                        ItemOnSale = item.ItemOnSale,
                                        ItemPrice  = item.ItemPrice,
                                        ItemStock  = item.ItemStock,
                                        ItemType   = item.ItemType,
                                    };
                                    return(View(model));
                                }
                            }
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 9
0
 public IActionResult CancelOrder(int id)
 {
     if (id > 0)                                                    //all ids are bigger than 0
     {
         var Session = HttpContext.Session.GetString("PubSession"); //user must be logged in to view an order
         if (Session != null)
         {
             PubSessions pubSession = _context.GetPubSession(Session);           //get session info
             if (pubSession != null)                                             //session exists
             {
                 if (pubSession.UserId > 0)                                      //if a user is logged in...
                 {
                     PubUsers pubUsers = _context.GetPubUser(pubSession.UserId); //fetch logged in user....
                     if (pubUsers != null)                                       //if user exists...
                     {
                         Get_PubOrderViewModel Order = _context.GetPubOrder(id);
                         if (Order != null)
                         {
                             if (Order.UserId == pubUsers.UserId)
                             {
                                 if (_context.RemovePubOrder(id))
                                 {
                                     ViewBag.RemovedOrderID = id;
                                     return(View());
                                 }
                             }
                             TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Error", "Error: Could not cancel order."));
                             return(RedirectToAction("Order", new { id }));
                         }
                     }
                 }
             }
         }
     }
     TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError());
     return(RedirectToAction("Index", "Home"));
 }
        public IActionResult Index(string ItemName, ItemTypes?ItemType, bool?ItemOnSale, int?PageNumber)    //as this is the default view, only show items on sale
        {
            UserAccessRank userAccessRank = UserAccessRank.Customer;
            var            Session        = HttpContext.Session.GetString("PubSession"); //user must be logged in to view orders

            if (Session != null)
            {
                PubSessions pubSession = _context.GetPubSession(Session); //get session info
                if (pubSession != null)                                   //session exists
                {
                    if (pubSession.UserId > 0)                            //if a user is logged in...
                    {
                        PubUsers pubUser = _context.GetPubUser(pubSession.UserId);
                        if (pubUser != null) //if user exists
                        {
                            userAccessRank = pubUser.UserAccessRank;
                        }
                    }
                }
            }
            ViewBag.UserAccessRank = userAccessRank;
            PubItemsViewModel model;

            if (userAccessRank == UserAccessRank.Admin) //if admin then admin can specify if items are on sale or not.
            {
                if (ItemType == null)
                {
                    model = _context.GetPubItems(ItemName, ItemOnSale ?? true, PageNumber ?? 0); //true - get only items on sale
                }
                else
                {
                    model = _context.GetPubItems(ItemName, ItemOnSale ?? true, PageNumber ?? 0, (ItemTypes)ItemType); //true - get only items on sale
                }

                if (model != null)
                {
                    ViewBag.PubItemsViewModel = model;
                }
            }
            else //if not admin items will always be on sale
            {
                if (ItemType == null)
                {
                    model = _context.GetPubItems(ItemName, true, PageNumber ?? 0); //true - get only items on sale
                }
                else
                {
                    model = _context.GetPubItems(ItemName, true, PageNumber ?? 0, (ItemTypes)ItemType); //true - get only items on sale
                }

                if (model != null)
                {
                    ViewBag.PubItemsViewModel = model;
                }
            }

            TempData.TryGetValue("ToastMessage", out object data);
            if (data != null)
            {
                ViewBag.Toast = JsonSerializer.Deserialize <ToastAlertViewModel>(data as string);
            }
            return(View(new FilterItemsViewModel()
            {
                ItemName = ItemName, ItemOnSale = ItemOnSale ?? true, ItemType = ItemType ?? null, PageNumber = PageNumber ?? 0
            }));
        }