Example #1
0
        public async Task <IActionResult> ChatWithName(Guid chatId)//is 000... na Redirect om de een of andere reden
        {
            string chatIdFromSession;

            if (chatId.ToString() == "00000000-0000-0000-0000-000000000000")
            {
                chatIdFromSession = HttpContext.Session.GetString("ChatId");
                if (chatIdFromSession != null)
                {
                    chatId = new Guid(chatIdFromSession);
                }
            }
            HttpContext.Session.Remove("ChatId");

            string userName    = HttpContext.Session.GetString("Username");
            var    currentChat = await pokemonContext.Chats
                                 .Include(c => c.Messages).ThenInclude(m => m.Sender)
                                 .Include(c => c.UserChats)
                                 .Where(c => c.Id == chatId).FirstOrDefaultAsync();

            ChatWithNameVm vm = new ChatWithNameVm
            {
                Chat     = currentChat,
                Username = userName
            };

            return(View(vm));
        }
Example #2
0
        public async Task <IActionResult> ChatWithName(ChatWithNameVm userdata)
        {
            if (ModelState.IsValid)
            {
                string userName = HttpContext.Session.GetString("Username");
                var    me       = await pokemonContext.Users
                                  .Where(u => u.Username == userName).FirstOrDefaultAsync();

                Message message = new Message
                {
                    ChatId   = userdata.Chat.Id,
                    Sender   = me,
                    Text     = userdata.Text,
                    SendDate = DateTime.Now
                };
                pokemonContext.Messages.Add(message);
                await pokemonContext.SaveChangesAsync();

                return(new RedirectToActionResult("ChatWithName", "Chat", userdata.Chat.Id));
            }
            return(View(userdata));
        }