private string PrepareJsonRequestForsearch2(ElasticSearchInput inputData)
        {
            string Request = string.Empty;

            try
            {
                if (inputData != null)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("{");
                    sb.Append("\"query\": {");
                    sb.Append("\"bool\": {");
                    sb.Append("\"must\": [");

                    if (!string.IsNullOrEmpty(inputData.ProgramCode))
                    {
                        sb.Append("{");
                        sb.Append("\"match_phrase\": {");
                        sb.AppendFormat("\"programCode.keyword\": \"{0}\"", inputData.ProgramCode);
                        sb.Append("}");
                        sb.Append("}");
                    }
                    if (!string.IsNullOrEmpty(inputData.ApiName))
                    {
                        sb.Append("{");
                        sb.Append("\"match_phrase\": {");
                        sb.AppendFormat("\"apiName\": \"{0}\"", inputData.ApiName);
                        sb.Append("}");
                        sb.Append("}");
                    }
                    if (!string.IsNullOrEmpty(inputData.StartDate) && !string.IsNullOrEmpty(inputData.EndDate))
                    {
                        sb.Append("{");
                        sb.Append("\"range\": {");
                        sb.Append("\"date.keyword\": {");
                        sb.AppendFormat("\"gte\": \"{0},\"", inputData.StartDate);
                        sb.AppendFormat("\"lte\": \"{0},\"", inputData.EndDate);
                        sb.AppendFormat("\"format\": \"{0},\"", "dd-MM-yyyy");
                        sb.Append("}");
                        sb.Append("}");
                        sb.Append("}");
                    }
                    sb.Append("]");
                    sb.Append("}");
                    sb.Append("}");
                    sb.Append("}");

                    Request = sb.ToString();
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(Request);
        }
 public IActionResult RequestResponseLog(ElasticSearchInput inputData)
 {
     try
     {
         IEnumerable <RequestResponseLogger> response = _processor.RequestResponseLogger(inputData);
         return(this.Ok(response));
     }
     catch (Exception ex)
     {
         return(this.BadRequest(ex.Message));
     }
 }
 public IActionResult SearchItemDetails(ElasticSearchInput inputData)
 {
     try
     {
         List <RequestResponseLogger> response = _processor.SearchItemDetails(inputData);
         var jsonResponse = JsonConvert.SerializeObject(response);
         return(this.Ok(jsonResponse));
     }
     catch (Exception ex)
     {
         return(this.BadRequest(ex.Message));
     }
 }
        public List <RequestResponseLogger> SearchItemDetails(ElasticSearchInput inputData)
        {
            List <RequestResponseLogger> response = new List <RequestResponseLogger>();

            try
            {
                string request = PrepareJsonRequestForsearch2(inputData);
                if (!String.IsNullOrEmpty(request))
                {
                    string apiUrl = string.Format(AppConfig.ElasticUrl + AppConfig.ResponseElasticLogIndex, inputData.ProgramCode.ToLower().Trim() + "/_search");
                    response = GetAPIResponseRabbit(request, apiUrl);
                }
                return(response);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #5
0
 public List <RequestResponseLogger> SearchItemDetails(ElasticSearchInput inputData)
 {
     return(empDataAccess.SearchItemDetails(inputData));
 }
Exemple #6
0
 public IEnumerable <RequestResponseLogger> RequestResponseLogger(ElasticSearchInput inputData)
 {
     return(empDataAccess.ElasticLogResponseSearch(inputData));
 }
        public IEnumerable <RequestResponseLogger> ElasticLogResponseSearch(ElasticSearchInput inputData)
        {
            if (inputData.StartDate.Contains("PM"))
            {
                string startDate = inputData.StartDate.Split(" ")[1];
                //int hour = startDate.Split(":")[0];
            }
            DateTime startdate   = Convert.ToDateTime(inputData.StartDate);
            DateTime enddate     = Convert.ToDateTime(inputData.EndDate);
            string   responseStr = string.Empty;
            IEnumerable <RequestResponseLogger> logList         = null;
            List <RequestResponseLogger>        responseLogList = new List <RequestResponseLogger>();

            try
            {
                if (inputData != null)
                {
                    if (!String.IsNullOrEmpty(inputData.ProgramCode) || !String.IsNullOrEmpty(inputData.ApiName) || !String.IsNullOrEmpty(inputData.StartDate) || !String.IsNullOrEmpty(inputData.EndDate))
                    {
                        string ProgramCode = inputData.ProgramCode.ToLower();
                        string ApiName     = inputData.ApiName.ToLower();

                        string ElasticURL = string.Format(AppConfig.ElasticUrl + AppConfig.ResponseElasticLogIndex, ProgramCode + "/_search");
                        string request    = string.Format(ElasticURL, ProgramCode.Trim());
                        //responseLogList = SearchElasticData(request);
                        HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(request.ToLower());
                        webReq.AutomaticDecompression  = DecompressionMethods.GZip | DecompressionMethods.Deflate;
                        using HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                        using Stream stream            = response.GetResponseStream();
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            responseStr = reader.ReadToEnd();
                            var jsonResult     = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responseStr);
                            var jsonResultList = jsonResult.hits.hits;

                            /*var loList = from l in jsonResultList
                             *           where Convert.ToDateTime(l.date) > enddate && Convert.ToDateTime(l.date) < startdate
                             *           select new { RequestResponseLogger = l.RequestResponseLogger };*/
                            /*var list = jsonResultList.Where(m => m.inputData.StartDate > DateTime.Today.AddMonths(-3))
                             *                                         .OrderByDescending(m => m.billDate).Take(1).ToList();*/

                            foreach (var logItems in jsonResultList)
                            {
                                responseLogList.Add(new RequestResponseLogger()
                                {
                                    Date        = logItems["_source"]["date"],
                                    ProgramCode = logItems["_source"]["programCode"],
                                    Request     = logItems["_source"]["request"],
                                    Response    = logItems["_source"]["response"],
                                    ApiName     = logItems["_source"]["apiName"]
                                });
                            }
                            logList = from l in responseLogList
                                      where Convert.ToDateTime(l.Date) < enddate && Convert.ToDateTime(l.Date) > startdate && l.ProgramCode == ProgramCode && l.ApiName == ApiName
                                      select new RequestResponseLogger()
                            {
                                Date        = l.Date,
                                ProgramCode = l.ProgramCode,
                                Request     = l.Request,
                                Response    = l.Response,
                                ApiName     = l.ApiName
                            };
                        }
                    }
                }
                return(logList.ToList());
            }
            catch (Exception)
            {
                throw;
            }
        }