public void Operation(MainRequest chatData)
        {
            var data = chatData as ChatMessageHistory;

            var chat = _allChatDetails.GetChatById(data.ChatId);

            if (chat == null)
            {
                var errorBody = new ErrorMessage
                {
                    RequestType = MessageType.ErrorResponse,
                    Error       = $"The chat with id {data.ChatId} not found"
                };
                _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(errorBody));
                return;
            }

            List <MessageDetails> messages = new List <MessageDetails>();

            foreach (var message in chat.Messages)
            {
                var msg = new MessageDetails
                {
                    SenderName  = message.ClientSender.Name,
                    Message     = message.Message,
                    Datetime    = message.DateSended,
                    MessageType = message.MessageType
                };
                messages.Add(msg);
            }



            var allChatMessages = new ChatMessageHistory
            {
                RequestType = MessageType.HistoryChatMessages,
                From        = _userClient.Name,
                AllMessages = messages.ToArray()
            };
            string data5 = Utils.SerlizeObject(allChatMessages);

            Console.WriteLine(data5);
            _containerInterfaces.RequestHandler.SendData(_userClient.Client, Utils.SerlizeObject(allChatMessages));

            _containerInterfaces.Logger.LogInformation("Send all history of chat " + data.ChatId);
        }
Ejemplo n.º 2
0
        public string GetAllOldMessages(string chatId)
        {
            var oldMessages = new ChatMessageHistory
            {
                RequestType = MessageType.HistoryChatMessages,
                ChatId      = chatId,
                From        = _user.Name
            };
            string oldMessagesStr = Utils.SerlizeObject(oldMessages);

            _containerInterfaces.RequestHandler.SendData(_user.Client, oldMessagesStr);
            string data = _containerInterfaces.ResponseHandler.GetResponse(_user.Client);

            var responseStr = new GetResponseFactory().GetResponse(data);

            if (responseStr == string.Empty)
            {
                return(null);
            }
            return(responseStr);
        }