private static HttpResponseMessage CallLog(dynamic log) { DateTime time = DateTime.UtcNow; if (time.DayOfWeek >= DayOfWeek.Monday && time.DayOfWeek <= DayOfWeek.Wednesday) { time = time.AddDays(3); } int Week = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); int Year = time.Year; var source = ((string)log.Source).ToLower().Replace(" ", ""); //string IndexName = $"{ConfigurationManager.AppSettings["ElasticIndex"]}-{source}-{Year}.{Week}/{ConfigurationManager.AppSettings["ElasticType"]}/"; ElasticClientMessage clientMessage = new ElasticClientMessage(); clientMessage.EndPoint = $"{ConfigurationManager.AppSettings["ElasticEndpoint"]}/{source}"; clientMessage.HttpMethod = HttpVerb.POST; clientMessage.AuthType = AuthenticationType.Basic; clientMessage.Credentials = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(ConfigurationManager.AppSettings["ElasticUser"] + ":" + ConfigurationManager.AppSettings["ElasticPassword"])); clientMessage.Document = log; logger.Error($"Request Message: {JsonConvert.SerializeObject(clientMessage)} "); return(WaspElasticHelper.LogEvent(clientMessage).Result); }
public static async Task <HttpResponseMessage> LogEvent(ElasticClientMessage elasticMessage) { HttpResponseMessage res = null; using (var client = new HttpClient()) using (var request = new HttpRequestMessage(HttpMethod.Post, elasticMessage.EndPoint)) { string json = JsonConvert.SerializeObject(elasticMessage.Document); using (HttpContent stringContent = new StringContent(json, Encoding.UTF8, "application/json")) { request.Content = stringContent; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", elasticMessage.Credentials); stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (var response = await client .SendAsync(request, HttpCompletionOption.ResponseHeadersRead) .ConfigureAwait(false)) { response.EnsureSuccessStatusCode(); res = response; } } } return(res); }