Exemple #1
0
        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));
        }