public async Task <IActionResult> Chat(string conversationId) { var conversation = await this.conversationService.GetByIdAsync(conversationId); var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); await this.conversationService.MarkConversationAsReadAsync(conversation.Id, userId); var product = this.productService.ProductProfileInfo(conversation.ProductId); var messages = await this.messageService.GetAllInConversationAsync(conversationId); var onMessageSendReceiverId = ""; if (conversation.BuyerId == userId) { onMessageSendReceiverId = conversation.SellerId; } else { onMessageSendReceiverId = conversation.BuyerId; } var viewModel = new MessagesChatViewModel { ProductId = product.Id, ProductName = product.Name, ConversationId = conversation.Id, OnMessageSendSenderId = userId, OnMessageSendReceiverId = onMessageSendReceiverId, }; foreach (var message in messages) { var sender = await this.userManager.FindByIdAsync(message.SenderId); viewModel.Messages.Add(new MessageViewModel { SenderName = sender.UserName, SendOn = message.SendOn.ToString(GlobalConstants.DateTimeFormat), Text = message.Text, }); } return(this.View(viewModel)); }
public async Task <IActionResult> Chat(string conversationId) { var conversation = await conversationService.GetByIdAsync(conversationId); var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); await conversationService.MarkConversationAsReadAsync(conversation.Id, userId); var ad = await adService.GetByIdAsync(conversation.AdvertisementId); var messages = await messageService.GetAllInConversationAsync(conversationId); var onMessageSendReceiverId = ""; if (conversation.BuyerId == userId) { onMessageSendReceiverId = conversation.SellerId; } else { onMessageSendReceiverId = conversation.BuyerId; } var viewModel = new MessagesChatViewModel { AdId = ad.Id, AdName = ad.Name, ConversationId = conversation.Id, OnMessageSendSenderId = userId, OnMessageSendReceiverId = onMessageSendReceiverId }; foreach (var message in messages) { var sender = await userManager.FindByIdAsync(message.SenderId); viewModel.Messages.Add(new MessageViewModel { SenderName = sender.UserName, SendOn = message.SendOn.ToString(GlobalConstants.DateTimeFormat), Text = message.Text }); } return(View(viewModel)); }