public async Task <int> RecordLogMessageAsync( string message, string auxData, string source, int category, LogEntrySeverities severity ) { // Retrieve requested user action var logSeverity = await _context .LogEntrySeverities .FirstAsync(act => act.Id == severity.AsInt()); var entry = new LogEntry { Severity = logSeverity, Message = message, AuxiliaryData = auxData, Source = source, Category = category }; // Record data await _context.LogEntries.AddAsync(entry); // Submit changes to data provider await _context.SaveChangesAsync(); // Return Id of a created object in the data provider. return(entry.Id); }
/// <summary> /// Makes N POST requests to log a message. /// Part of the massage contains a current timestamp, so every log entry is unique. /// </summary> /// <param name="n">number of times to make a request</param> /// <param name="source">Source of the log message</param> /// <param name="category">Category of the log message</param> /// <returns>Response of the last request</returns> private async Task <HttpResponseMessage> MakeNLogMessageRequests( int n, string source = "the-source", int category = 1, LogEntrySeverities severity = LogEntrySeverities.Warn ) { var _url = "/api/logmessage"; var parameters = new Dictionary <string, string> { { "severity", severity.ToString() }, { "source", source }, { "category", category.ToString() } }; lock (_logLocker) { if (!_client.DefaultRequestHeaders.Contains("apikey")) { _client.DefaultRequestHeaders.Add("apikey", _apiKey); } } HttpResponseMessage response = null; for (int i = 0; i < n; i++) { parameters["message"] = $"Hello, world {DateTime.UtcNow}"; response = await _client.PostAsync(_url, new FormUrlEncodedContent(parameters)); } return(response); }