//public bool InitialMessages() //{ // Message message = new Message() // { // MessageText = "How Are You?", // SentTime = System.DateTime.Now, // ConversationID = 1, // UserID = 1 // }; // _context.Messages.Add(message); // _context.SaveChanges(); // message = new Message() // { // MessageText = "Are You Still Good?", // SentTime = System.DateTime.Now.AddMinutes(1), // ConversationID = 1, // UserID = 1 // }; // _context.Messages.Add(message); // _context.SaveChanges(); // message = new Message() // { // MessageText = "Im just fine", // SentTime = System.DateTime.Now.AddMinutes(2), // ConversationID = 1, // UserID = 2 // }; // _context.Messages.Add(message); // _context.SaveChanges(); // message = new Message() // { // MessageText = "How about you", // SentTime = System.DateTime.Now.AddMinutes(1), // ConversationID = 1, // UserID = 2 // }; // _context.Messages.Add(message); // _context.SaveChanges(); // return true; //} // CREATE NEW CONVERSATION public async Task <IActionResult> NewConversationAsync(int userId) { // Get UserID Of Sender var currentUserId = HttpContext.Session.GetInt32("userId"); // Check If Receiver Existed var user = _context.Users.FirstOrDefault(u => u.ID == userId); if (user != null) { // Check If Conversation Already Existed var userConversationIdList = _context.UserConversations .Where(u => u.UserID == currentUserId).ToList(); foreach (var i in userConversationIdList) { var uConversation = _context.UserConversations .Include(u => u.Conversation) .Where(u => u.ConversationID == i.ConversationID).ToList(); foreach (var j in uConversation) { if (j.UserID == userId && j.Conversation.ConversationType == 0) { return(RedirectToAction("Home", "Messenger", new { id = j.ConversationID })); } } } // Create New Conversation Conversation conversation = new Conversation(); DateTime currentTime = System.DateTime.Now; conversation.CreatedDate = currentTime; conversation.ConversationType = 0; _context.Add(conversation); await _context.SaveChangesAsync(); // Create New UserConversations // Get Conversation ID var conversationId = _context.Conversations .FirstOrDefault(c => c.CreatedDate == currentTime).ID; // Save User Conversations UserConversation uC1 = new UserConversation(); uC1.ConversationID = conversationId; uC1.UserID = (int)currentUserId; uC1.UserSeen = 1; _context.Add(uC1); await _context.SaveChangesAsync(); UserConversation uC2 = new UserConversation(); uC2.ConversationID = conversationId; uC2.UserID = userId; uC2.UserSeen = 0; _context.Add(uC2); await _context.SaveChangesAsync(); return(RedirectToAction("Home", "Messenger", new { id = conversationId })); } return(NotFound()); }
public async Task <IActionResult> Create([Bind("id,name,created_at")] User user) { if (ModelState.IsValid) { _context.Add(user); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(user)); }
public JsonResult SendMessage() { if (HttpContext.Session.GetInt32("user") == null) { return(Json(new { status = "error", message = "User is not logged in" })); } var id = HttpContext.Session.GetInt32("user"); // var currentUser = _context.User.FirstOrDefault(m => m.id == id); /// var currentUser = TempData["userData"] as User; var contact = Convert.ToInt32(Request.Form["contact"]); string socket_id = Request.Form["socket_id"]; Conversation convo = new Conversation { sender_id = (int)id, message = Request.Form["message"], receiver_id = contact }; _context.Add(convo); _context.SaveChanges(); var conversationChannel = getConvoChannel((int)id, contact); pusher.TriggerAsync( conversationChannel, "new_message", convo, new TriggerOptions() { SocketId = socket_id }); return(Json(convo)); }