コード例 #1
0
        public void AddManyMessagesAndShowThem()
        {
            MessageContainer messageContainter = new MessageContainer();

            messageContainter.AddMessage("Hola");
            messageContainter.AddMessage("Pepe");
            messageContainter.AddMessage("Col");

            //Act
            var result = messageContainter.GetMessagesAsText();

            //Assert
            Assert.Equal("Hola (0 seconds ago) Pepe (0 seconds ago) Col (0 seconds ago)", String.Join(' ', result));
        }
コード例 #2
0
        public void AddAMessageAndReturnIt()
        {
            MessageContainer messageContainter = new MessageContainer();

            messageContainter.AddMessage("Hola");

            //Act
            var result = messageContainter.GetMessagesAsText();

            //Assert
            Assert.Equal("Hola (0 seconds ago)", result.First());
        }
コード例 #3
0
        /// <summary>
        /// Transfers registered messages to the message container.
        /// </summary>
        /// <param name="messageContainer">The Message Containter.</param>
        public void MoveMessages(MessageContainer messageContainer)
        {
            lock (this)
            {
                for ( int i = 0; i < this._messages.Length; i++ )
                {
                    Message message = this._messages[i] as Message;

                    // 2.5.1 ignores messages that have been answered
                    if (message != null && ! message.HasBeenAsnwered)
                    {
                        message.SerializedContent.Position = 0;
                        messageContainer.AddMessage(message, false);
                        this._messages[i] = null;
                    }
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Calls API to get reponse message for the user
        /// </summary>
        /// <param name="userRequestMessage">user request</param>
        public async void APICallAsync(string userRequestMessage)
        {
            HttpClient client = new HttpClient();
            //WebAPITest.Program.Main(new string[] { });
            string url = "https://localhost:44363/api/call/";

            url += userRequestMessage;
            HttpResponseMessage message = await client.GetAsync(url);

            if (!message.IsSuccessStatusCode)
            {
                System.Windows.MessageBox.Show($"Request failed with status code {message.StatusCode}");
            }
            else
            {
                MessageContainer.AddMessage((await message.Content.ReadAsStringAsync()).ToString(), false);
            }
        }
        private void SetupLogs()
        {
            foreach (EventLog eventLog in Logs)
            {
                eventLog.EnableRaisingEvents = false;
                eventLog.Dispose();
            }
            Logs.Clear();
            foreach (string logName in Configuration.WindowsEventLogsConfiguration.LogsToMonitor)
            {
                try
                {
                    if (EventLog.Exists(logName))
                    {
                        var eventLog = new EventLog(logName);
                        Logs.Add(eventLog);
                        // set event handler
                        eventLog.EntryWritten += (apps, arg) =>
                        {
                            if (LogLevel(arg.Entry.EntryType) >= Configuration.WindowsEventLogsConfiguration.MinimumLogLevel)
                            {
                                AnalogyGRPCLogMessage m = CreateGRPCMessageFromEvent(arg.Entry);
                                m.Module = logName;
                                MessageContainer.AddMessage(m);
                            }
                        };

                        eventLog.EnableRaisingEvents = true;
                    }
                }
                catch (Exception e)
                {
                    string m = "Error Opening log. Please make sure you are running as Administrator." + Environment.NewLine + "Error:" + e.Message;
                    AnalogyGRPCLogMessage err = new AnalogyGRPCLogMessage
                    {
                        Level = AnalogyGRPCLogLevel.Error, Text = m,
                        Date  = Timestamp.FromDateTime(DateTime.UtcNow),
                        Id    = Guid.NewGuid().ToString()
                    };
                    MessageContainer.AddMessage(err);
                }
            }
        }
 protected override Task ExecuteAsync(CancellationToken stoppingToken)
 {
     if (Configuration.WindowsEventLogsConfiguration.EnableMonitoring)
     {
         try
         {
             SetupLogs();
         }
         catch (Exception e)
         {
             string m = "Error Opening log. Please make sure you are running as Administrator." + Environment.NewLine + "Error:" + e.Message;
             AnalogyGRPCLogMessage err = new AnalogyGRPCLogMessage {
                 Level = AnalogyGRPCLogLevel.Error, Text = m, Date = Timestamp.FromDateTime(DateTime.UtcNow), Id = Guid.NewGuid().ToString()
             };
             MessageContainer.AddMessage(err);
         }
     }
     return(Task.CompletedTask);
 }
コード例 #7
0
        private async Task HandleClientPublisingMessages(IAsyncStreamReader <AnalogyGRPCLogMessage> requestStream,
                                                         ServerCallContext serverCallContext, CancellationToken token)
        {
            try
            {
                await foreach (var message in requestStream.ReadAllAsync(token))
                {
                    try
                    {
                        if (message.Date == null)
                        {
                            message.Date = Timestamp.FromDateTime(DateTime.UtcNow);
                        }

                        if (string.IsNullOrEmpty(message.Id))
                        {
                            message.Id = Guid.NewGuid().ToString();
                        }

                        MessageContainer.AddMessage(message);
                    }
                    catch (Exception e)
                    {
                        Logger.LogError($"Error  receiving messages: {e}");
                    }
                }
            }
            catch (OperationCanceledException)
            {
                Logger.LogError($"Consuming ended for Peer: {serverCallContext.Peer}");
            }
            catch (Exception e)
            {
                Logger.LogError($"Error: {e.Message}. Peer: {serverCallContext.Peer}");
            }
        }
コード例 #8
0
 /// <summary>
 /// Add message by button clicked function
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void SendButton_Click(object sender, RoutedEventArgs e)
 {
     MessageContainer.AddMessage(InputField.Text, true);
     APICallAsync(InputField.Text);
     InputField.Text = string.Empty;
 }
コード例 #9
0
 /// <summary>
 /// Add message function
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e">the message content</param>
 private void InputBox_TextSubmitted(object sender, string e)
 {
     MessageContainer.AddMessage(e.ToString(), true);
     APICallAsync(e);
 }