public IActionResult DeleteUser(int id)
        {
            // Remove Comments
            List <Comment> RemoveComments = _context.Comments.Where(user => user.UserId == id).ToList();

            foreach (var comment in RemoveComments)
            {
                _context.Remove(comment);
            }
            _context.SaveChanges();

            // Remove Posts
            List <Post> RemovePosts = _context.Posts.Where(user => user.UserId == id).ToList();

            foreach (var post in RemovePosts)
            {
                _context.Remove(post);
            }
            // Remove user
            User RemoveUser = _context.Users.Where(user => user.UserId == id).SingleOrDefault();

            _context.Remove(RemoveUser);
            _context.SaveChanges();

            return(RedirectToAction("Dashboard"));
        }
Пример #2
0
 public IActionResult PostMessage(Post post)
 {
     if (HttpContext.Session.GetInt32("UserId") != null)
     {
         Post NewPost = new Post
         {
             PostContent = post.PostContent,
             CreatedAt   = DateTime.Now,
             UpdatedAt   = DateTime.Now,
             UserId      = (int)HttpContext.Session.GetInt32("UserId")
         };
         _context.Posts.Add(NewPost);
         _context.SaveChanges();
         ViewBag.AllPosts = _context.Posts
                            .Include(p => p.User)
                            .OrderByDescending(p => p.CreatedAt)
                            .Include(p => p.Comment)
                            .ThenInclude(thisComment => thisComment.User)
                            .ToList();
         int?logId = HttpContext.Session.GetInt32("UserId");
         ViewBag.LoggedUser = _context.Users.SingleOrDefault(user => user.UserId == logId);
         ModelState.Clear();
         return(RedirectToAction("Index"));
     }
     else
     {
         return(RedirectToAction("Index", "Login"));
     }
 }
Пример #3
0
        public IActionResult EditInfo(UpdateViewModel model)
        {
            int? UserId   = HttpContext.Session.GetInt32("userid");
            User thisUser = _context.Users.SingleOrDefault(x => x.UserId == UserId);

            if (ModelState.IsValid)
            {
                if (thisUser.email != model.email)
                {
                    List <User> Checkemail = _context.Users.Where(x => x.email == model.email).ToList();
                    if (Checkemail.Count > 0)
                    {
                        TempData["invalidemail"] = $"Email entered already used. Please use another email.";
                        return(RedirectToAction("EditUser"));
                    }
                    TempData["email"] = $"Email updated successfully from {thisUser.email}";
                    thisUser.email    = model.email;
                }
                if (thisUser.firstname != model.firstname)
                {
                    TempData["firstname"] = $"First name updated successfully from {thisUser.firstname}";
                    thisUser.firstname    = model.firstname;
                }
                if (thisUser.lastname != model.lastname)
                {
                    TempData["lastname"] = $"Last name updated successfully from {thisUser.lastname}";
                    thisUser.lastname    = model.lastname;
                }
                _context.SaveChanges();
                RedirectToAction("EditUser");
            }
            ViewBag.UserLoggedin = thisUser;
            return(View("EditUser"));
        }
Пример #4
0
        public IActionResult AddPost(Post model, int id)
        {
            User CurrentUser = _context.Users.SingleOrDefault(person => person.UserId == (int)HttpContext.Session.GetInt32("CurrUserId"));

            Post NewPost = new Post {
                Title   = model.Title,
                Content = model.Content,
                UserId  = id
            };

            _context.Add(NewPost);
            _context.SaveChanges();

            return(RedirectToAction("Wall"));
        }
Пример #5
0
 public IActionResult RegisterUser(RegisterViewModel model, User NewUser)
 {
     if (ModelState.IsValid)
     {
         List <User> Allusers = _context.Users.Where(User => User.email == model.email).ToList();
         if (Allusers.Count > 0)
         {
             TempData["Emailused"] = "This email has already been registered. Login or Register with new email.";
             return(View("Register"));
         }
         List <User> Allemails = _context.Users.ToList();
         if (Allemails.Count == 0)
         {
             NewUser.level = 9;
         }
         else
         {
             NewUser.level = 1;
         }
         PasswordHasher <User> Hasher = new PasswordHasher <User>();
         NewUser.password = Hasher.HashPassword(NewUser, NewUser.password);
         _context.Users.Add(NewUser);
         _context.SaveChanges();
         User Reg = _context.Users.SingleOrDefault(User => User.email == NewUser.email);
         HttpContext.Session.SetInt32("userid", (int)Reg.UserId);
         HttpContext.Session.SetInt32("level", (int)Reg.level);
         if (Reg.level == 9)
         {
             return(RedirectToAction("ManageUsers", "Admin"));
         }
         return(RedirectToAction("AllUsers", "Normal"));
     }
     return(View("Register"));
 }
Пример #6
0
        public IActionResult PostMessage(Message NewMessage)
        {
            // System.Console.WriteLine("NEW MESSAGE", message);
            // System.Console.WriteLine(message);
            // NewMessage.message = message;
            int?WallId   = HttpContext.Session.GetInt32("profileid");
            int?SenderId = HttpContext.Session.GetInt32("userid");

            NewMessage.MessageReceivedId = (int)WallId;
            NewMessage.MessageSentId     = (int)SenderId;
            System.Console.WriteLine("NEW MESSAGE");
            System.Console.WriteLine(NewMessage.message);
            _context.Messages.Add(NewMessage);
            _context.SaveChanges();
            return(RedirectToAction("DisplayWall", new{ user_id = WallId }));
        }
Пример #7
0
        public IActionResult EditUser(int id, User model)
        {
            User CurrentUser = _context.Users.SingleOrDefault(u => u.UserId == id);

            ViewBag.User = CurrentUser;

            System.Console.WriteLine(model.AccessLevel);

            CurrentUser.FirstName   = model.FirstName;
            CurrentUser.LastName    = model.LastName;
            CurrentUser.Email       = model.Email;
            CurrentUser.AccessLevel = model.AccessLevel;
            CurrentUser.UpdatedAt   = DateTime.Now;
            _context.SaveChanges();
            return(RedirectToAction("Dashboard", "Dashboard"));
        }
Пример #8
0
        public IActionResult AddUser(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                User currUser = _context.Users.SingleOrDefault(user => user.Email == model.Email);

                if (currUser != null)
                {
                    ModelState.AddModelError("email", "Email is already registered");
                    return(View("AddUser", model));
                }
                User newUser = new User
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Email     = model.Email,
                    Password  = model.Password,
                };
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                newUser.Password = Hasher.HashPassword(newUser, newUser.Password);
                _context.Users.Add(newUser);
                _context.SaveChanges();
                currUser         = _context.Users.SingleOrDefault(user => user.Email == newUser.Email);
                ViewBag.currUser = currUser;
                HttpContext.Session.SetInt32("CurrUser", currUser.UserId);
                return(RedirectToAction("Dashboard", "Dashboard"));
            }
            return(View("AddUser", model));
        }
Пример #9
0
        public IActionResult UpdateInfoA(int id, User model)
        {
            User CurrentUser = _context.Users.SingleOrDefault(person => person.UserId == id);

            ViewBag.User = CurrentUser;

            System.Console.WriteLine(model.AccessLevel);

            CurrentUser.FirstName   = model.FirstName;
            CurrentUser.LastName    = model.LastName;
            CurrentUser.Email       = model.Email;
            CurrentUser.AccessLevel = model.AccessLevel;
            CurrentUser.UpdatedAt   = DateTime.Now;
            _context.SaveChanges();

            TempData["Success"] = "User info successfuly updated";
            return(RedirectToAction("Dashboard", "Dashboard"));
        }
Пример #10
0
        public IActionResult DeleteUser(int id)
        {
            if (HttpContext.Session.GetInt32("id") == null)
            {
                return(RedirectToAction("Login"));
            }
            User current = _context.users.Single(u => u.id == HttpContext.Session.GetInt32("id"));

            if (current.user_level != "admin")
            {
                return(RedirectToAction("Dashboard"));
            }
            User userToRemove = _context.users.SingleOrDefault(u => u.id == id);

            _context.Remove(userToRemove);
            _context.SaveChanges();
            return(RedirectToAction("Dashboard"));
        }
Пример #11
0
        public IActionResult AddUser(RegisterViewModel model, User NewUser)
        {
            System.Console.WriteLine("New User", NewUser);
            if (ModelState.IsValid)
            {
                List <User> Allusers = _context.Users.Where(User => User.email == model.email).ToList();
                if (Allusers.Count > 0)
                {
                    TempData["Emailused"] = "This email has already been registered. Register with a new email.";
                    return(View("AddUser"));
                }
                NewUser.level = 1;
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                NewUser.password = Hasher.HashPassword(NewUser, NewUser.password);
                _context.Users.Add(NewUser);
                _context.SaveChanges();
                return(RedirectToAction("ManageUsers"));
            }
            int? UserId    = HttpContext.Session.GetInt32("userid");
            User Adminuser = _context.Users.SingleOrDefault(User => User.UserId == UserId);

            ViewBag.UserName = Adminuser.firstname;
            return(View("AddUser"));
        }
        public IActionResult RegisterUser(User model)
        {
            List <string> allErrors = new List <string>();

            if (ModelState.IsValid)
            {
                User CheckUser = _context.Users.SingleOrDefault(person => person.Email == model.Email);

                if (CheckUser != null)
                {
                    allErrors.Add("Email already in use");
                    TempData["Errors"] = allErrors;
                    return(RedirectToAction("Index"));
                }

                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                User newUser = new User {
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    Email       = model.Email,
                    Password    = model.Password,
                    AccessLevel = model.AccessLevel,
                    CreatedAt   = DateTime.Now,
                    UpdatedAt   = DateTime.Now
                };
                newUser.Password = Hasher.HashPassword(newUser, newUser.Password);

                _context.Add(newUser);
                _context.SaveChanges();
                // Grab user id
                User user = _context.Users.SingleOrDefault(person => person.Email == model.Email);
                HttpContext.Session.SetInt32("CurrUserId", user.UserId);

                return(RedirectToAction("Success"));
            }
            foreach (var i in ModelState.Values)
            {
                if (i.Errors.Count > 0)
                {
                    allErrors.Add(i.Errors[0].ErrorMessage.ToString());
                }
            }
            TempData["Errors"] = allErrors;
            return(RedirectToAction("Index", model));
        }
Пример #13
0
 public IActionResult Create(Register model)
 {
     if (ModelState.IsValid)
     {
         User EmailCheck = _userDashboardContext.User.SingleOrDefault(User => User.Email == model.Email);
         if (EmailCheck == null)
         {
             User newUser = new User
             {
                 FirstName   = model.FirstName,
                 LastName    = model.LastName,
                 Email       = model.Email,
                 Password    = model.Password,
                 Level       = 0,
                 Description = "",
                 CreatedAt   = DateTime.Now,
                 UpdatedAt   = DateTime.Now
             };
             _userDashboardContext.Add(newUser);
             _userDashboardContext.SaveChanges();
             return(RedirectToAction("Dashboard"));
         }
         else
         {
             ViewBag.RegisterMessages = "Email Taken!";
         }
     }
     return(View("New"));
 }