public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View("Login", model)); } if (model.Username == "") { model.Username = UserManager.FindByEmail(model.Email).UserName; } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout : false); switch (result) { case SignInStatus.Success: OnlineUsersHelper.UpdateOnlineStatus(model.Username); return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return(View("Login", model)); } }
public async Task <ActionResult> Create(string id) { if (id == User.Identity.GetUserId()) { return(Content("You can't chat with yourself!")); } string myUserId = User.Identity.GetUserId(); string myUserName = User.Identity.Name; if (!_conDb.Conversations.Where(x => x.FromUserId == id).Any(x => x.ToUserId == myUserId)) { // create new conversation var newConversationDetail = new ConversationDetail() { ConversationId = Guid.NewGuid(), FromUserId = id, ToUserId = myUserId, ToUserName = myUserName, UnreadMessageNo = 0, Updatetime = DateTime.Now }; _conDb.Conversations.Add(newConversationDetail); await _conDb.SaveChangesAsync(); } if (!_conDb.Conversations.Where(x => x.FromUserId == myUserId).Any(x => x.ToUserId == id)) { // create new conversation var newConversationDetail = new ConversationDetail() { ConversationId = Guid.NewGuid(), FromUserId = myUserId, ToUserId = id, ToUserName = UserManager.FindById(id).UserName, UnreadMessageNo = 0, Updatetime = DateTime.Now }; _conDb.Conversations.Add(newConversationDetail); await _conDb.SaveChangesAsync(); } //if target user is online, creating real time connection if (OnlineUsersHelper.CheckIfUserOnline(UserManager.FindById(id).UserName) && OnlineUsersHelper.CheckIfUserOnline(UserManager.FindById(myUserId).UserName)) { } return(RedirectToAction("Index")); }