public async Task SendMessageAsync(Guid orderRequestGuid, string text) { User currentUser = await _currentUser.GetInfoAsync(); OrderRequest orderRequest = await _chatRoom.GetOrderRequestAsync(orderRequestGuid); if (await _chatRoom.IsOrderRequestAccessibleAsync(orderRequest)) { ChatMessage chatMessage = await _chatRoom.CreateMessageAsync(orderRequest.OrderRequestId, text, currentUser.UserId); string clientName = chatMessage.User.FirstName + " " + chatMessage.User.LastName; string sentAt = PersianDateExtensionMethods.ToPeString(chatMessage.SentAt, "yyyy/MM/dd HH:mm"); await Clients.Group(orderRequestGuid.ToString()) .SendAsync("ReceiveMessage", clientName, chatMessage.Text, sentAt, _currentUser.Role); } else { throw new NotSupportedException("Order Is Closed"); } }