Example #1
0
    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);
    }
Example #2
0
    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);
    }