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