Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.45 KB | None | 0 0
  1. namespace Shoplify.Web.Hubs
  2. {
  3.     using System.Threading.Tasks;
  4.  
  5.     using Microsoft.AspNetCore.Identity;
  6.     using Microsoft.AspNetCore.SignalR;
  7.     using Shoplify.Common;
  8.     using Shoplify.Domain;
  9.     using Shoplify.Services.Interfaces;
  10.     using Shoplify.Web.BindingModels.Message;
  11.     using Shoplify.Web.ViewModels.Message;
  12.  
  13.     public class MessageHub : Hub
  14.     {
  15.         private readonly IMessageService messageService;
  16.         private readonly UserManager<User> userManager;
  17.  
  18.         public MessageHub(IMessageService messageService, UserManager<User> userManager)
  19.         {
  20.             this.messageService = messageService;
  21.             this.userManager = userManager;
  22.         }
  23.  
  24.         public async Task SendMessage(MessageBindingModel inputModel)
  25.         {
  26.             var messageServiceModel = await messageService.CreateMessageAsync(inputModel.ConversationId, inputModel.SenderId, inputModel.ReceiverId, inputModel.Text);
  27.  
  28.             var sender = await userManager.FindByIdAsync(messageServiceModel.SenderId);
  29.  
  30.             var messageViewModel = new MessageViewModel
  31.             {
  32.                 SendOn = messageServiceModel.SendOn.ToLocalTime().ToString(GlobalConstants.DateTimeFormat),
  33.                 SenderName = sender.UserName,
  34.                 Text = messageServiceModel.Text
  35.             };
  36.  
  37.             await Clients.Users(inputModel.ReceiverId)
  38.                 .SendAsync("SendMessage", messageViewModel);
  39.         }
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement