private IEnumerable <MessageContext <object, string> > ParseFeedMessageHandler(MessageContext <string> messageContext)
        {
            try
            {
                return(Enumerable.Repeat(messageContext.NextWithState(webSocketMessageParser.Parse(messageContext.Message), messageContext.Message), 1));
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Parsing message error. ContextId: {messageContext.IncomingId}");

                messageDumper.Write(
                    messageContext.Next(
                        new DumpMessage()
                {
                    EventId     = "Line",
                    Source      = DumpSource.FROM_FEED,
                    MessageBody = messageContext.Message,
                    MessageType = "Unkuown"
                }
                        )
                    );

                return(Array.Empty <MessageContext <object, string> >());
            }
        }
        public Task SendAsync(MessageContext <IWebSocketRequest> messageContext, CancellationToken cancellationToken)
        {
            var message = JsonConvert.SerializeObject(messageContext.Message);

            var task = webSocketClient.SendAsync(message, cancellationToken);

            messageDumper.Write(messageContext.Next(
                                    new DumpMessage()
            {
                EventId     = (messageContext.Message as ITranslationWebSocketRequest)?.TranslationId.ToString() ?? "Line",
                Source      = DumpSource.TO_FEED,
                MessageType = messageContext.Message.GetType().Name,
                MessageBody = message
            }
                                    )
                                );

            return(task);
        }
Example #3
0
 private void DumpResponseHandler(MessageContext <string> messageContext)
 {
     try
     {
         messageDumper.Write(
             messageContext.Next(
                 new DumpMessage()
         {
             EventId     = "Line",
             Source      = DumpSource.FROM_API,
             MessageType = "TranslationsList",
             MessageBody = messageContext.Message
         }
                 )
             );
     }
     catch (Exception ex)
     {
         logger.LogError(ex, $"Dumping reponse error. ContextId: {messageContext.IncomingId}");
     }
 }
 private void WriteDumpHandler(MessageContext <ITransmitterCommand, string> messageContext)
 {
     try
     {
         messageDumper.Write(
             messageContext.Next(
                 new DumpMessage()
         {
             Source      = DumpSource.TO_TRANSMITTER,
             MessageBody = JsonConvert.SerializeObject(messageContext.Message),
             MessageType = messageContext.Message.GetType().Name,
             EventId     = messageContext.State
         }
                 )
             );
     }
     catch (Exception ex)
     {
         logger.LogError(ex, $"Dump sending error. ContextId: {messageContext.IncomingId}");
     }
 }
Example #5
0
        private IEnumerable <MessageContext <Translation, TranslationSubscription> > TranslationDumpHandler(MessageContext <Translation, TranslationSubscription> messageContext)
        {
            try
            {
                messageDumper.Write(
                    messageContext.Next(
                        new DumpMessage()
                {
                    Source      = DumpSource.FROM_API,
                    MessageBody = JsonConvert.SerializeObject(messageContext.Message),
                    MessageType = messageContext.Message.GetType().Name,
                    EventId     = messageContext.Message.Id.ToString()
                }
                        )
                    );
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Dump sending error. ContextId: {messageContext.IncomingId}, TranslationId: {messageContext.Message.Id}");
            }

            return(Enumerable.Repeat(messageContext, 1));
        }