public ActionResult Login(LoginViewModel loginInfo) { if (ModelState.IsValid) { using (var db = new RealtimeChatDB()) { User loggingUser = db.Users.Where(user => user.UserName == loginInfo.UserName).FirstOrDefault(); if (loggingUser != null) { if (string.Equals(loginInfo.UserPassword, loggingUser.UserPassword)) { FormsAuthentication.SetAuthCookie(loggingUser.UserName, loginInfo.RememberMe); return(RedirectToAction("Index", "Rooms")); } else { ModelState.AddModelError("UserPassword", "Wrong password"); } } else { ModelState.AddModelError("UserName", "Username not found"); } } } return(View()); }
public ActionResult Details(int?id) { if (id != null) { Room currentRoom; List <RoomMember> currentRoomMembers; var db = new RealtimeChatDB(); currentRoom = db.Rooms.Where(r => r.RoomID == id).FirstOrDefault(); currentRoomMembers = db.RoomMembers.Where(m => m.RoomID == currentRoom.RoomID).ToList(); if (currentRoom != null) { RoomDetailsViewModel roomDetails = new RoomDetailsViewModel { CurrentRoom = currentRoom, RoomMembers = currentRoomMembers }; return(View(roomDetails)); } else { TempData["dangerMessage"] = "No room was matched with provided ID"; return(RedirectToAction("Index")); } } else { TempData["dangerMessage"] = "Room ID parameter is not found"; return(RedirectToAction("Index")); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { Room currentRoom; User currentUser = (User)filterContext.HttpContext.Items["currentUser"]; int currentRoomID = Convert.ToInt32(filterContext.RouteData.Values["id"]); using (var db = new RealtimeChatDB()) { currentRoom = db.Rooms.Where(r => r.RoomID == currentRoomID).FirstOrDefault(); if (currentRoom != null) { RoomMember existingMember = db.RoomMembers.Where(m => m.UserID == currentUser.UserID && m.RoomID == currentRoom.RoomID).FirstOrDefault(); if (existingMember == null) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary(new { action = "Index", controller = "Rooms" }) ); } else { filterContext.HttpContext.Items["currentRoom"] = currentRoom; } } else { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary(new { action = "Index", controller = "Rooms" }) ); } } }
public ActionResult doimk(doimk doimk) { User currentUser = (User)HttpContext.Items["currentUser"]; var db = new RealtimeChatDB(); if (ModelState.IsValid) { if (currentUser.UserPassword == doimk.mkcu) { var a = db.Users.Attach(currentUser); a.UserPassword = doimk.mkmoi; db.SaveChanges(); TempData["ChangeInfoorPass"] = "******"; return(RedirectToAction("Details", "Users")); } else { ModelState.AddModelError("mkcu", "Wrong Old Password"); return(View()); } } else { return(View()); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { Room currentRoom = (Room)filterContext.HttpContext.Items["currentRoom"]; User currentUser = (User)filterContext.HttpContext.Items["currentUser"]; if (currentRoom != null) { int currentRoomID = currentRoom.RoomID; int currentUserID = currentUser.UserID; using (var db = new RealtimeChatDB()) { RoomMember currentRoomMember = db.RoomMembers.Where(m => m.RoomID == currentRoomID && m.UserID == currentUserID).FirstOrDefault(); if (currentRoomMember.MemberLevel < 2) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary(new { action = "Index", controller = "Rooms" }) ); } } } else { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary(new { action = "Index", controller = "Rooms" }) ); } }
public override Task OnConnected() { string roomIDstr = Context.QueryString["roomID"]; int roomID = Convert.ToInt32(Context.QueryString["roomID"]); Groups.Add(Context.ConnectionId, "Room_" + roomID); joinedUsers.GetOrAdd(Context.ConnectionId, roomID); using (var db = new RealtimeChatDB()) { List <ChatMessage> initMessages; List <SendMessageViewModel> formattedMessages = new List <SendMessageViewModel>(); initMessages = db.ChatMessages.Where(msg => msg.RoomID == roomID).ToList(); initMessages.ForEach(msg => { User sender = db.Users.Where(u => u.UserID == msg.SenderID).FirstOrDefault(); formattedMessages.Add(new SendMessageViewModel { UserID = sender.UserID, UserName = sender.UserName, ShowName = sender.ShowName, MessageText = msg.MessageText }); }); Clients.Caller.broadcastMessages(formattedMessages); } return(base.OnConnected()); }
public void Send(string message) { User currentUser; Room currentRoom; int currentRoomID = joinedUsers[Context.ConnectionId]; using (var db = new RealtimeChatDB()) { currentUser = db.Users.Where(u => u.UserName == Context.User.Identity.Name).FirstOrDefault(); currentRoom = db.Rooms.Where(r => r.RoomID == currentRoomID).FirstOrDefault(); var newMessage = db.ChatMessages.Create(); newMessage.SenderID = currentUser.UserID; newMessage.RoomID = currentRoom.RoomID; newMessage.MessageText = message; db.ChatMessages.Add(newMessage); db.SaveChanges(); Clients.Group("Room_" + joinedUsers[Context.ConnectionId]).broadcastMessage( new SendMessageViewModel { UserID = currentUser.UserID, UserName = currentUser.UserName, ShowName = currentUser.ShowName, MessageText = newMessage.MessageText } ); } }
public ActionResult Index() { List <Room> roomList; int currentUserID = ((User)HttpContext.Items["currentUser"]).UserID; using (var db = new RealtimeChatDB()) { roomList = db.Rooms.Where(r => r.RoomMembers.Any(m => m.UserID == currentUserID)).ToList(); } return(View(roomList)); }
public ActionResult All() { List <Room> roomList; using (var db = new RealtimeChatDB()) { roomList = db.Rooms.ToList(); } ViewBag.currentUserID = ((User)HttpContext.Items["currentUser"]).UserID; return(View(roomList)); }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { using (var db = new RealtimeChatDB()) { User getUser = db.Users.Where(user => user.UserName == (string)value).FirstOrDefault(); if (getUser != null) { return(new ValidationResult("This username has been taken")); } else { return(ValidationResult.Success); } } }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { using (var db = new RealtimeChatDB()) { Room getRoom = db.Rooms.Where(room => room.RoomName == (string)value).FirstOrDefault(); if (getRoom != null) { return(new ValidationResult("This room name has been taken")); } else { return(ValidationResult.Success); } } }
public ActionResult DeletePost(int id, FormCollection collection) { // TODO: Add delete logic here User currentUser = (User)HttpContext.Items["currentUser"]; Room currentRoom = (Room)HttpContext.Items["currentRoom"]; using (var db = new RealtimeChatDB()) { Room deleteRoom = db.Rooms.Attach(currentRoom); db.Rooms.Remove(deleteRoom); db.SaveChanges(); } TempData["successMessage"] = "Deleted successfully"; return(RedirectToAction("Index")); }
public ActionResult doiemail(doiemail doiemail) { User currentUser = (User)HttpContext.Items["currentUser"]; var db = new RealtimeChatDB(); if (ModelState.IsValid) { var a = db.Users.Attach(currentUser); a.Email = doiemail.emailmoi; a.ShowName = doiemail.namemoi; db.SaveChanges(); TempData["ChangeInfoorPass"] = "******"; return(RedirectToAction("Details", "Users")); } else { return(View()); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.User.Identity.IsAuthenticated) { using (var db = new RealtimeChatDB()) { string currentUserName = filterContext.HttpContext.User.Identity.Name; User currentUser = db.Users.Where(u => u.UserName == currentUserName).FirstOrDefault(); if (currentUser != null) { filterContext.HttpContext.Items["currentUser"] = currentUser; } else { FormsAuthentication.SignOut(); filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary(new { action = "Login", controller = "Sessions" }) ); } } } }
public ActionResult Create(RoomCreateViewModel roomCreateInfo) { try { if (ModelState.IsValid) { int currentUserID = ((User)HttpContext.Items["currentUser"]).UserID; using (var db = new RealtimeChatDB()) { var newRoom = db.Rooms.Create(); newRoom.RoomName = roomCreateInfo.RoomName; newRoom.ShowName = roomCreateInfo.ShowName; newRoom.RoomDescription = roomCreateInfo.Description; newRoom.CreatorID = ((User)HttpContext.Items["currentUser"]).UserID; db.Rooms.Add(newRoom); var newMember = db.RoomMembers.Create(); newMember.UserID = ((User)HttpContext.Items["currentUser"]).UserID; newMember.RoomID = newRoom.RoomID; newMember.MemberLevel = 2; db.RoomMembers.Add(newMember); db.SaveChanges(); TempData["successMessage"] = "You have successfully created a room"; return(RedirectToAction("Index")); } } else { return(View()); } } catch { return(View()); } }
public ActionResult LeaveRoom(int?id) { if (id != null) { int currentUserID = ((User)HttpContext.Items["currentUser"]).UserID; Room joiningRoom; using (var db = new RealtimeChatDB()) { joiningRoom = db.Rooms.Where(r => r.RoomID == id).FirstOrDefault(); if (joiningRoom != null) { RoomMember existingMember = db.RoomMembers.Where(m => m.UserID == currentUserID && m.RoomID == joiningRoom.RoomID).FirstOrDefault(); if (existingMember == null) { ModelState.AddModelError("LeaveError", "You are not joined this room"); } else if (existingMember.MemberLevel == 2) { ModelState.AddModelError("LeaveError", "You cannot leave this room because you are the person who created it"); } else { db.RoomMembers.Remove(existingMember); db.SaveChanges(); TempData["successMessage"] = "You have leaved the room successfully"; return(RedirectToAction("Index")); } } } } else { ModelState.AddModelError("JoinError", "Room ID param was not found"); } return(View()); }
public ActionResult JoinRoom(int?roomID) { if (roomID != null) { int currentUserID = ((User)HttpContext.Items["currentUser"]).UserID; Room joiningRoom; using (var db = new RealtimeChatDB()) { joiningRoom = db.Rooms.Where(r => r.RoomID == roomID).FirstOrDefault(); if (joiningRoom != null) { RoomMember existingMember = db.RoomMembers.Where(m => m.UserID == currentUserID && m.RoomID == joiningRoom.RoomID).FirstOrDefault(); if (existingMember == null) { var newMember = db.RoomMembers.Create(); newMember.UserID = currentUserID; newMember.RoomID = joiningRoom.RoomID; newMember.MemberLevel = 0; db.RoomMembers.Add(newMember); db.SaveChanges(); TempData["successMessage"] = "You have joined the room successfully"; return(RedirectToAction("All")); } else { ModelState.AddModelError("JoinError", "You have already joined this room"); } } } } else { ModelState.AddModelError("JoinError", "Room ID param was not found"); } return(View()); }
public ActionResult Create(RegisterViewModel registerInfo) { if (ModelState.IsValid) { using (var db = new RealtimeChatDB()) { var newUser = db.Users.Create(); newUser.UserName = registerInfo.UserName; newUser.UserPassword = registerInfo.UserPassword; newUser.Email = registerInfo.Email; newUser.ShowName = registerInfo.ShowName; newUser.CreatedAt = DateTime.Now; db.Users.Add(newUser); db.SaveChanges(); TempData["successMessage"] = "Signed up successfully. Please login."; return(RedirectToAction("Login", "Sessions")); } } else { return(View()); } }
public ActionResult Messages(int?id) { if (id != null) { Room currentRoom; using (var db = new RealtimeChatDB()) { currentRoom = db.Rooms.Where(r => r.RoomID == id).FirstOrDefault(); } if (currentRoom != null) { return(View(currentRoom)); } else { return(RedirectToAction("Index")); } } else { return(RedirectToAction("Index")); } }