Пример #1
0
        public async Task <IActionResult> SendFirstMessage(ChatSendFirstMessageVm vm)
        {
            var  serializedReceiver = HttpContext.Session.GetString("ReceiverData");
            User chatReceiver       = JsonConvert.DeserializeObject <User>(serializedReceiver);

            if (ModelState.IsValid)
            {
                string userName = HttpContext.Session.GetString("Username");
                User   user     = await pokemonContext.Users
                                  .Where(u => u.Username == userName)
                                  .FirstOrDefaultAsync();

                var  chatName = userName + ", " + chatReceiver.Username;
                Chat chat     = new Chat
                {
                    Name             = chatName,
                    CreatorId        = user.Id,
                    CreateDate       = DateTime.Now,
                    LastMessage      = vm.Text,
                    NumberOfUsers    = 2,
                    NumberOfMessages = 2
                };
                pokemonContext.Chats.Add(chat);
                var id = chat.Id;

                UserChat userChat = new UserChat
                {
                    Chat = chat,
                    User = user
                };
                pokemonContext.UserChats.Add(userChat);

                UserChat userChat2 = new UserChat
                {
                    Chat   = chat,
                    UserId = chatReceiver.Id
                };
                pokemonContext.UserChats.Add(userChat2);

                Message message = new Message
                {
                    ChatId   = id,
                    Sender   = user,
                    Text     = vm.Text,
                    SendDate = DateTime.Now
                };
                pokemonContext.Messages.Add(message);
                await pokemonContext.SaveChangesAsync();

                HttpContext.Session.SetString("ChatId", id.ToString());
                return(new RedirectToActionResult("ChatWithName", "Chat", id));
            }
            vm.Receiver = chatReceiver;
            return(View(vm));
        }
Пример #2
0
        public IActionResult SendFirstMessage()
        {
            var  serializedReceiver = HttpContext.Session.GetString("ReceiverData");
            User ChatReceiver       = JsonConvert.DeserializeObject <User>(serializedReceiver);

            ChatSendFirstMessageVm vm = new ChatSendFirstMessageVm()
            {
                Receiver = ChatReceiver
            };

            return(View(vm));
        }