// GET: Buildings/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            //Change View based on Role:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            ViewBag.Role = user.Role;

            var building = await _context.Buildings
                           .SingleOrDefaultAsync(m => m.ID == id);

            building.Rooms = _context.Rooms.Where(r => r.BuildingID == building.ID).OrderBy(r => r.Name).ToList();

            if (building == null)
            {
                return(NotFound());
            }

            return(View(building));
        }
        // GET: Buildings/Delete/5
        public async Task <IActionResult> Delete(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Deny non-admins:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("/Buildings/Index"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            var building = await _context.Buildings
                           .SingleOrDefaultAsync(m => m.ID == id);

            if (building == null)
            {
                return(NotFound());
            }

            return(View(building));
        }
Esempio n. 3
0
        public IActionResult Login(LoginViewModel loginVM)
        {
            if (ModelState.IsValid)
            {
                //Find user
                if (_context.FileMembers.Any(x => x.Email == loginVM.Email))
                {
                    FileMember user = _context.FileMembers.Single(u => u.Email == loginVM.Email);

                    if (user.Password.Equals(Encryption.Hash(loginVM.Password)))
                    {
                        //start session
                        HttpContext.Session.Set(SessionName, System.Text.Encoding.UTF8.GetBytes(user.Email));
                        //string SessionNum = HttpContext.Session.GetHashCode().ToString();
                        //HttpContext.Response.Cookies.Append(SessionNum, user.Email.ToString());

                        HttpContext.Session.SetString("Username", user.Email);


                        return(RedirectToAction(nameof(Index)));
                    }
                    ViewBag.Error = "Incorrect Password.";
                    return(View(loginVM));
                }
                ViewBag.Error = "User does not exist. Please register.";
                return(View(loginVM));
            }
            ViewBag.Error = "Login failed. Please try again.";
            return(View(loginVM));
        }
Esempio n. 4
0
        // GET: Rooms/Create
        public IActionResult Create()
        {
            //Deny non-users:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Deny non-admins:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("/Buildings/Index"));
            }

            //ViewData["BuildingID"] = new SelectList(_context.Buildings, "ID", "ID");

            CreateRoomViewModel createRoomVM = new CreateRoomViewModel();

            createRoomVM.Buildings = _context.Buildings.Select(p => new SelectListItem()
            {
                Value = p.ID.ToString(), Text = p.Name
            }).ToList();

            return(View(createRoomVM));
        }
Esempio n. 5
0
        // GET: Rooms/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            //Change View based on Role:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            ViewBag.Role = user.Role;

            var room = await _context.Rooms
                       .Include(r => r.Building)
                       .SingleOrDefaultAsync(m => m.ID == id);

            // Add files to rooms
            room.Files = _context.Files.Where(f => f.RoomID == room.ID)
                         .Include(f => f.Consumer)
                         .Include(f => f.CaseManager)
                         .ToList();

            if (room == null)
            {
                return(NotFound());
            }

            return(View(room));
        }
Esempio n. 6
0
        // GET: Rooms/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Deny non-admins:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("/Buildings/Index"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            var room = await _context.Rooms.SingleOrDefaultAsync(m => m.ID == id);

            if (room == null)
            {
                return(NotFound());
            }
            ViewData["BuildingID"] = new SelectList(_context.Buildings, "ID", "ID", room.BuildingID);
            return(View(room));
        }
        // GET: Buildings
        public async Task <IActionResult> Index()
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Change View based on Role:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            ViewBag.Role = user.Role;

            return(View(await _context.Buildings.OrderBy(b => b.Name).Include(b => b.Rooms).ToListAsync()));
        }
Esempio n. 8
0
        public void AddItemToListView(ListView listView)
        {
            FileMember fm = new FileMember();

            fm.Name      = document.Name;
            fm.Location  = document.FullName;
            fm.Size      = getLength(document.Length);
            fm.Created   = document.CreationTime.ToString();
            fm.Extension = document.Extension;
            if (listView.Dispatcher.Thread == Thread.CurrentThread)
            {
                listView.Items.Add(fm);
            }
            else
            {
                listView.Dispatcher.BeginInvoke(new AddItemToListViewDelegate(AddItemToListView), new object[] { listView });
            }
        }
Esempio n. 9
0
        public IActionResult Users()
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("Login"));
            }

            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("Index"));
            }

            IEnumerable <FileMember> fileMembers = _context.FileMembers.AsEnumerable();

            return(View(fileMembers));
        }
Esempio n. 10
0
        public IActionResult Register(RegisterViewModel registerVM)
        {
            if (ModelState.IsValid)
            {
                //if user does not already exist:
                if (!_context.FileMembers.Any(u => u.Email == registerVM.Email))
                {
                    //if passwords match:
                    if (registerVM.Password.Equals(registerVM.Verify))
                    {
                        //make new model with VM data, hashing password
                        FileMember newUser = new FileMember
                        {
                            FirstName = registerVM.FirstName,
                            LastName  = registerVM.LastName,
                            Email     = registerVM.Email,
                            Password  = Encryption.Hash(registerVM.Password)
                        };

                        //save model to DB
                        _context.FileMembers.Add(newUser);
                        _context.SaveChanges();

                        //start session
                        HttpContext.Session.Set(SessionName, System.Text.Encoding.UTF8.GetBytes(newUser.Email));
                        string SessionNum = HttpContext.Session.GetHashCode().ToString();
                        HttpContext.Response.Cookies.Append(SessionNum, newUser.Email.ToString());

                        return(RedirectToAction(nameof(Index)));
                    }

                    ViewBag.Error = "Passwords must match.";
                    return(View(registerVM));
                }

                ViewBag.Error = "User already exists. Please login.";
                return(View(registerVM));
            }

            ViewBag.Error = "Register failed. Please try again.";
            return(View(registerVM));
        }
Esempio n. 11
0
        // GET: Buildings/Create
        public IActionResult Create()
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Deny non-admins:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("/Buildings/Index"));
            }

            CreateBuildingViewModel createBuildingVM = new CreateBuildingViewModel();

            return(View(createBuildingVM));
        }
Esempio n. 12
0
        public IActionResult Index()
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("Login"));
            }

            //Change View based on Role:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            ViewBag.Role = user.Role;

            // For Search:
            HomeViewModel homeViewModel = new HomeViewModel();

            // For Daily Tasks:
            homeViewModel.ActionFiles = _context.Files
                                        .Where(f => f.Status == Status.Damaged || f.Status == Status.Full)
                                        .Include(f => f.Consumer)
                                        .Include(f => f.CaseManager)
                                        .Include(f => f.Room)
                                        .OrderBy(f => f.Consumer.LastName);

            homeViewModel.InactiveFiles = _context.Files
                                          .Where(f => f.ShredDate <= homeViewModel.Today)
                                          .Include(f => f.Consumer)
                                          .Include(f => f.CaseManager)
                                          .Include(f => f.Room)
                                          .OrderBy(f => f.Consumer.LastName);

            foreach (File file in homeViewModel.InactiveFiles)
            {
                file.Status = Models.Status.Shred;
                _context.Update(file);
                _context.SaveChangesAsync();
            }

            return(View(homeViewModel));
        }
Esempio n. 13
0
        // GET: Buildings/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            //Check if user logged in:
            if (HttpContext.Session.GetString("Username") == null)
            {
                return(Redirect("/Home/Login"));
            }

            //Deny non-admins:
            FileMember user = _context.FileMembers.Single(u => u.Email == HttpContext.Session.GetString("Username"));

            if (user.Role != Role.Admin)
            {
                return(Redirect("/Buildings/Index"));
            }

            if (id == null)
            {
                return(NotFound());
            }

            var building = await _context.Buildings.SingleOrDefaultAsync(m => m.ID == id);

            if (building == null)
            {
                return(NotFound());
            }

            EditBuildingViewModel editBuildingVM = new EditBuildingViewModel
            {
                Name        = building.Name,
                Address     = building.Address,
                PhoneNumber = building.PhoneNumber,
            };

            return(View(editBuildingVM));
        }