Exemple #1
0
        public ActionResult Search(int ActionURL = 1)
        {
            var KeySearch = Session["KeySearch"] != null ? Session["KeySearch"].ToString() : string.Empty;
            SearchResultResponse response = _homeService.Search(string.Format("%{0}%", KeySearch), Constants.Constants.SEARCH_PAGE_SIZE, ActionURL);

            response.PageIndex = ActionURL;
            return(View(response));
        }
Exemple #2
0
        public ActionResult Search(string KeySearch, int pageIndex = 1)
        {
            SearchResultResponse response = _homeService.Search(string.Format("%{0}%", KeySearch), Constants.Constants.SEARCH_PAGE_SIZE, pageIndex);

            response.KeySearch   = KeySearch;
            response.PageIndex   = pageIndex;
            Session["KeySearch"] = KeySearch;
            return(View(response));
        }
Exemple #3
0
        public ActionResult Search(string keyword = "", int?page = 1)
        {
            ViewBag.SearchString     = keyword;
            ViewBag.FeaturedProjects = _projectService.GetFeaturedProjects(6).ToList();
            SearchResultResponse result = SeachData(keyword, page);
            IPagedList <SearchResultViewModel> pageProjects = new StaticPagedList <SearchResultViewModel>(result.Items, (int)page, Portal.Infractructure.Utility.Define.DISPLAY_PROJECT_PAGE_SIZE, result.TotalItems);

            return(View("Search", pageProjects));
        }
Exemple #4
0
        public SearchResultResponse SeachData(string keyword, int?page)
        {
            SearchDataResponse   result   = _service.Search(keyword, (int)page);
            SearchResultResponse retValue = new SearchResultResponse()
            {
                Items      = result.Results.ConvertToSearchResultViewModels(),
                TotalItems = result.TotalResult
            };

            return(retValue);
        }
        /// <summary>
        ///     Запрос на поиск сертов
        /// </summary>
        /// <param name="isActive"></param>
        /// <param name="searchString"></param>
        /// <returns></returns>
        public ActionResult FindCertificate(bool isActive = false, string searchString = "")
        {
            Guid token = CheckSessionAuthState(CurrentUser, _authService);

            if (token == Guid.Empty)
            {
                return(Json(new { status = "Error", errorCode = "401", errorMessage = "" }, JsonRequestBehavior.AllowGet));
            }
            //bool isActiveCur = isActive ?? false;

            var model = new List <CertificateInfoContactAdd>();
            SearchResultResponse response = _cryptxService.GetCertificatesBySearchString(searchString, isActive, false,
                                                                                         token);

            if (response.Exception == null)
            {
                foreach (CertificateInfo certificateInfo in response.Certificates)
                {
                    var curCert = new CertificateInfoContactAdd();
                    curCert.CertificateId = certificateInfo.CertificateId;
                    curCert.SubjectName   = certificateInfo.SubjectName;
                    curCert.IssureName    = certificateInfo.IssureName;
                    curCert.Thumbprint    = certificateInfo.Thumbprint;
                    curCert.Organization  = certificateInfo.Organization;
                    curCert.IsTest        = certificateInfo.IsTest;
                    if (DateTime.Now < certificateInfo.NotBefore)
                    {
                        curCert.TimeMessage = "Недействителен до " +
                                              certificateInfo.NotBefore.Date.ToShortDateString().Replace("/", ".");
                    }
                    if (DateTime.Now > certificateInfo.NotBefore && DateTime.Now < certificateInfo.NotAfter)
                    {
                        curCert.TimeMessage = "Действителен до " +
                                              certificateInfo.NotAfter.Date.ToShortDateString().Replace("/", ".");
                    }
                    else
                    {
                        curCert.TimeMessage = "Недействителен с " +
                                              certificateInfo.NotAfter.Date.ToShortDateString().Replace("/", ".");
                    }
                    model.Add(curCert);
                }
            }
            else
            {
                return(Json(new { status = "Error", errorCode = "", errorMessage = response.Exception.Message },
                            JsonRequestBehavior.AllowGet));
            }

            return(Json(new { model, status = "ok" }, JsonRequestBehavior.AllowGet));
        }
        private void ProceesQueryResponse(string jsonResult, SearchResultResponse searchResponse)
        {
            var resultJObject         = JObject.Parse(jsonResult);
            FlickrSearchResult result = resultJObject.ToObject <FlickrSearchResult>();

            if (result.stat == "ok")
            {
                searchResponse.HasError     = false;
                searchResponse.ErrorMessage = null;
                searchResponse.Photos       = result.photos.photo;
                searchResponse.Pages        = result.photos.pages;
                searchResponse.PerPage      = result.photos.perpage;
                searchResponse.Total        = result.photos.total;
            }
            else
            {
                searchResponse.HasError     = true;
                searchResponse.ErrorMessage = $"request Failed with code: { (result.code.HasValue ? result.code.Value.ToString() : "") }, message: { result.message }";
            }
        }
        public IActionResult findImages([FromBody] SearchRequestData meta)
        {
            if (!meta.Page.HasValue)
            {
                meta.Page = 1;
            }


            var searchResponse = new SearchResultResponse();

            if (string.IsNullOrWhiteSpace(meta.Keywords))
            {
                if (!meta.Lat.HasValue || !meta.Lon.HasValue)
                {
                    searchResponse.HasError     = true;
                    searchResponse.ErrorMessage = "at Least on of (Keywords/Gelocation info) must be supplied.";
                    var errorResponse = new ObjectResult(searchResponse);
                    errorResponse.StatusCode = 200;
                    return(errorResponse);
                }
            }


            var querySuffix = makeQuerySuffic(meta);
            var cacheKey    = GetMD5Hash(querySuffix);

            string cacheResult = "";

            if (EnableCaching)
            {
                cacheResult = _distributedCache.GetString(cacheKey);
            }

            if (!string.IsNullOrEmpty(cacheResult))
            {
                ProceesQueryResponse(cacheResult, searchResponse);
            }
            else
            {
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://api.flickr.com/");

                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json"));

                    HttpResponseMessage flickrResponse = client.GetAsync(querySuffix).Result;
                    if (flickrResponse.IsSuccessStatusCode)
                    {
                        string jsonResult = flickrResponse.Content.ReadAsStringAsync().Result;

                        ProceesQueryResponse(jsonResult, searchResponse);
                        if (!searchResponse.HasError)
                        {
                            if (EnableCaching)
                            {
                                var options = new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(CacheSeconds));
                                _distributedCache.SetString(cacheKey, jsonResult, options);
                            }
                        }
                    }
                    else
                    {
                        searchResponse.HasError     = true;
                        searchResponse.ErrorMessage = $"request Failed with statusCode: { flickrResponse.StatusCode.ToString() }, reason: { flickrResponse.ReasonPhrase }";
                    }
                }
            }

            var response = new ObjectResult(searchResponse);

            response.StatusCode = 200;
            return(response);
        }
        public ActionResult FindCertificate(string searchString, bool?isActive, Guid?contactId, string addToContact,
                                            string selectedItem, Guid?userId, bool all = false)
        {
            ViewBag.all = all;
            Guid token = CheckSessionAuthState(CurrentUser, _authService);

            if (token == Guid.Empty)
            {
                ViewBag.login = true;
            }
            ViewBag.contactId = contactId;
            ViewBag.UserId    = (userId == null ? Guid.Empty : (Guid)userId);
            bool isActiveCur = isActive ?? false;

            if (string.IsNullOrEmpty(addToContact))
            {
                var model = new List <CertificateInfoContactAdd>();
                SearchResultResponse response = _cryptxService.GetCertificatesBySearchString(searchString, isActiveCur,
                                                                                             all, token);
                if (response.Exception == null)
                {
                    foreach (CertificateInfo certificateInfo in response.Certificates)
                    {
                        var curCert = new CertificateInfoContactAdd();
                        curCert.CertificateId = certificateInfo.CertificateId;
                        curCert.SubjectName   = certificateInfo.SubjectName;
                        curCert.IssureName    = certificateInfo.IssureName;
                        if (certificateInfo.RecipientCertificate != null &&
                            certificateInfo.RecipientCertificate.FriendlyName != null)
                        {
                            curCert.FriendlyName = certificateInfo.RecipientCertificate.FriendlyName;
                        }
                        curCert.Thumbprint   = certificateInfo.Thumbprint;
                        curCert.Organization = certificateInfo.Organization;
                        curCert.IsTest       = certificateInfo.IsTest;
                        if (curCert.FriendlyName == null)
                        {
                            curCert.FriendlyName = string.Empty;
                        }
                        if (DateTime.Now < certificateInfo.NotBefore)
                        {
                            curCert.TimeMessage = "Недействителен до " +
                                                  certificateInfo.NotBefore.Date.ToShortDateString().Replace("/", ".");
                        }
                        if (DateTime.Now > certificateInfo.NotBefore && DateTime.Now < certificateInfo.NotAfter)
                        {
                            curCert.TimeMessage = "Действителен до " +
                                                  certificateInfo.NotAfter.Date.ToShortDateString().Replace("/", ".");
                        }
                        else
                        {
                            curCert.TimeMessage = "Недействителен с " +
                                                  certificateInfo.NotAfter.Date.ToShortDateString().Replace("/", ".");
                        }
                        model.Add(curCert);
                    }
                }
                return(View(model));
            }
            if (!string.IsNullOrEmpty(selectedItem) && contactId != null && contactId != Guid.Empty)
            {
                var serializaer = new JavaScriptSerializer();
                var certs       = serializaer.Deserialize <List <CertificateInfoContactAdd> >(selectedItem);
                var requestList = new List <CertificateAddRequest>();
                foreach (CertificateInfoContactAdd certificateInfoContactAdd in certs)
                {
                    requestList.Add(new CertificateAddRequest
                    {
                        CertificateId = certificateInfoContactAdd.CertificateId
                    });
                }
                _cryptxService.AddCertificatesToContact((Guid)contactId, requestList,
                                                        (userId == null ? Guid.Empty : (Guid)userId), token);
            }

            return(View());
        }
        /// <summary>
        /// populateGrid - This method which populates the values in NameSearchResults gridview
        /// </summary>
        public void PopulateGrid()
        {
            if ((_LastName.Text != string.Empty && _MailingZip.Text != string.Empty))
            {
                try
                {
                    Results.Visible = true;
                    //// MAIG - Begin - 11122014
                    lblerrorMessage.Text      = string.Empty;
                    lblerrorMessage.Visible   = false;
                    NameSearchResults.Visible = true;
                    //// MAIG - End - 11122014
                    //Constructs request parameter for Elastic Search
                    SearchResultRequest searchRequest = new SearchResultRequest();
                    searchRequest.Parameter.RequestParam.Search    = string.Empty;
                    searchRequest.Parameter.RequestParam.DocType   = "Policy";
                    searchRequest.Parameter.RequestParam.FirstName = (!string.IsNullOrEmpty(_FirstName.Text.Trim())) ? _FirstName.Text.Trim() : default(string);
                    searchRequest.Parameter.RequestParam.LastName  = (!string.IsNullOrEmpty(_LastName.Text.Trim())) ? _LastName.Text.Trim() : default(string);

                    //CHG0115410 - BEGIN - CH1 - Modified the input request passed to the Customer Search API
                    if (Convert.ToString(_MailingZip.Text).Trim().Length > 0)
                    {
                        //Passed zipcode type as the new parameter along with the input request to the API
                        searchRequest.Parameter.RequestParam.ZipCode.Type = new string[4] {
                            "risk", "billing", "mailing", "home"
                        }
                    }
                    ;
                    //Modified the type of zipcode from string to zipcode class
                    searchRequest.Parameter.RequestParam.ZipCode.value = (!string.IsNullOrEmpty(_MailingZip.Text.Trim())) ? _MailingZip.Text.Trim() : default(string);
                    //CHG0115410 - END - CH1 - Modified the input request passed to the Customer Search API

                    searchRequest.Parameter.Header.ChannelType = "DSU";

                    //Constructs service call request
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Config.Setting("jsonURL"));
                    request.Method      = "POST";
                    request.ContentType = "application/json; charset=utf-8";
                    using (MemoryStream ms = new MemoryStream())
                    {
                        DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(searchRequest.GetType());
                        jsonSerializer.WriteObject(ms, searchRequest);
                        using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
                        {
                            String json = Encoding.UTF8.GetString(ms.ToArray());
                            CSAAWeb.AppLogger.Logger.Log("Elastic Search Request Received. UserID: " + Page.User.Identity.Name);
                            if (Config.Setting("Logging.ElasticSearch").Equals("1"))
                            {
                                CSAAWeb.AppLogger.Logger.Log("Elastic Search Request Details." + json);
                            }
                            writer.Write(json);
                            writer.Close();
                            //txtRequest.Text = json; //TO DO: Remove this line, if you dont want to show raw request
                        }
                    }

                    //Invokes service call & gets response
                    var httpResponse = (HttpWebResponse)request.GetResponse();

                    //Constructs response entity and bind the datasource into grid
                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        //Gets the raw JSON response
                        string jsonResponse = streamReader.ReadToEnd();
                        //txtResponse.Text = jsonResponse.ToString(); //TO DO: Remove this line, if you dont want to show raw response

                        //TO DO: Try to use DataContractJsonSerializer instead of JavaScriptSerializer
                        //       to follow the code standard of search response (Property Name should be PASCAL CASE).
                        //       Need to follow the same coding standard which is in the SearchRequest.

                        //Converts raw JSON response to business entity
                        JavaScriptSerializer jsSerializer   = new JavaScriptSerializer();
                        SearchResultResponse searchResponse = jsSerializer.Deserialize <SearchResultResponse>(jsonResponse);
                        CSAAWeb.AppLogger.Logger.Log(String.Format("Elastic Search Response Received. Total Number of Hits: {0}  UserID: {1} ", searchResponse.responseJson.totalHits, Page.User.Identity.Name));
                        if (Config.Setting("Logging.ElasticSearch").Equals("1"))
                        {
                            CSAAWeb.AppLogger.Logger.Log("Elastic Search Response Details." + jsonResponse);
                        }
                        //Session["NameSearchResult"] = null;
                        NameSearchResults.DataSource = null;
                        NameSearchResults.DataBind();
                        NameSearchResults.PageIndex = 0;
                        int val = 0;
                        if (searchResponse.responseJson != null && searchResponse.responseJson.searchedPolicies != null && searchResponse.responseJson.searchedPolicies.Count() > 0)
                        {
                            //CHG0115410 - BEGIN - CH2 - Modified the query with respect to the new response generated from Upgraded Customer Search API.
                            //CHG0116140 - BEGIN - CH1 - Added FirstCharToUpper function to modify 1st Letter of string as Upper Case
                            SearchResult = (from result in searchResponse.responseJson.searchedPolicies
                                            from cons in result.partyList
                                            from party in cons.partyRoles
                                            where ((!string.IsNullOrEmpty(result.sourceSystem) && result.sourceSystem != "NCNU_MEM") && (!string.IsNullOrEmpty(party.roleType) && (party.roleType.ToUpper() == "NAMEDINSURED" || party.roleType.ToUpper() == "NAMED INSURED" || party.roleType.ToUpper() == "INSURED")))
                                            select(new SearchResultEntity
                            {
                                SourceSystem = (result.sourceSystem.ToUpper() == "MAIG_HOME") ? "KIC" : (result.sourceSystem.ToUpper() == "PUP") ? "PUPSYS" : (result.sourceSystem.ToUpper() == "MAIG_AUTO") ? "KIC" : result.sourceSystem,
                                policyNumber = string.IsNullOrEmpty(result.policyNumber) ? string.Empty : (result.sourceSystem.ToUpper() == "MAIG_AUTO") ? result.policyNumber.Substring(1) : (result.sourceSystem.ToUpper() == "SIS" && result.policyNumber.StartsWith(Config.Setting("SISpolicyPrefix"))) ? result.policyNumber.Substring(2) : (result.sourceSystem == "SIS") ? result.policyNumber.Substring(3) : result.policyNumber,
                                policyStatus = string.IsNullOrEmpty(result.policyStatus) ? string.Empty : result.policyStatus,
                                //Added logic for HOME : if prodTypeCode:"DP" & productCode:"DP3" & sourceSystem:"COGEN"
                                productCode = string.IsNullOrEmpty(result.prodTypeCode) ? string.Empty : ((result.prodTypeCode.ToUpper() == "HO" && (string.IsNullOrEmpty(result.productCode) || result.productCode.ToUpper() != "DP3")) || (result.prodTypeCode.ToUpper().Equals("DP") && (!string.IsNullOrEmpty(result.productCode) && result.productCode.ToUpper().Equals("DP3")) && result.sourceSystem.ToUpper().Equals("MAIG_HOME"))) ? "Home" : (result.prodTypeCode.ToUpper() == "AU" || result.prodTypeCode.ToUpper() == "PA") ? "Auto" : ((result.prodTypeCode.ToUpper() == "SPCL" && !string.IsNullOrEmpty(result.productCode) && result.productCode.ToUpper() == "MC") || result.prodTypeCode.ToUpper() == "MC") ? "Motorcycle" : ((result.prodTypeCode.ToUpper() == "SPCL" && !string.IsNullOrEmpty(result.productCode) && result.productCode.ToUpper() == "PWC") || result.prodTypeCode.ToUpper() == "WC") ? "Watercraft" : ((result.prodTypeCode.ToUpper() == "HO" && !string.IsNullOrEmpty(result.productCode) && result.productCode.ToUpper() == "DP3") || result.prodTypeCode.ToUpper() == "DF") ? "Dwelling Fire" : (result.prodTypeCode.ToUpper() == "PUP" || result.prodTypeCode.ToUpper() == "PU") ? "Personal Umbrella" : result.prodTypeCode,
                                NamedInsured = FirstCharToUpper(((string.IsNullOrEmpty(cons.firstName)) ? string.Empty : cons.firstName)) +
                                               "  " + FirstCharToUpper(((string.IsNullOrEmpty(cons.lastName)) ? string.Empty : cons.lastName)),
                                address = ((cons.partyAddress != null) ? GetAddress(cons.partyAddress) : "")
                            })).Distinct().OrderBy(SearchEntity => SearchEntity.policyNumber, new SemiNumericComparer()).ToList();
                            //CHG0116140 - END - CH1 - Added FirstCharToUpper function to modify 1st Letter of string as Upper Case
                            //CHG0115410 - END - CH2 - Modified the query with respect to the new response generated from Upgraded Customer Search API.

                            ViewState.Add("SearchResult", SearchResult);
                            NameSearchResults.DataSource = SearchResult;
                            //Keeps in Session object for maintaining pagination
                            //Session["NameSearchResult"] = SearchResult;
                        }
                        //Binds the search result in Grid
                        NameSearchResults.DataBind();
                        //if (searchResponse.responseJson.totalHits == 0)
                        //{
                        //    NameSearchResults.EmptyDataText = "There is no records for the given search criteria";
                        //}
                        lblCustomerNameSearch.Visible = true;
                    }
                }
                catch (Exception ex)
                {
                    lblerrorMessage.Visible = true;
                    lblerrorMessage.Text    = CSAAWeb.Constants.ELASTIC_SEARCH_ERROR_MESSAGE;
                    Logger.Log("There is an exception in Namesearch - PopulateGrid : " + ex.ToString());
                    //// MAIG - Begin - 11122014
                    NameSearchResults.Visible = false;
                    //// MAIG - End - 11122014
                }
            }
        }
Exemple #10
0
        public SearchResultResponse Search(string keyword, int pageSize, int pageIndex)
        {
            SearchResultResponse response = new SearchResultResponse();
            List <SearchModel>   list     = new List <SearchModel>();

            try
            {
                //Search news
                INewsRepository newsRepository = RepositoryClassFactory.GetInstance().GetNewsRepository();
                IList <News>    news           = newsRepository.Search(keyword);
                foreach (var item in news)
                {
                    list.Add(new SearchModel()
                    {
                        Action       = "ViewNews",
                        ActionURL    = item.ActionURL,
                        Controller   = "News",
                        CreatedDate  = item.CreatedDate,
                        ImageURL     = item.ThumbnailURL,
                        ShortContent = item.ShortContent,
                        Title        = item.Title
                    });
                }

                //Search Article
                IArticleRepository articleRepository = RepositoryClassFactory.GetInstance().GetArticleRepository();
                IList <Article>    articles          = articleRepository.Search(keyword);
                foreach (var item in articles)
                {
                    list.Add(new SearchModel()
                    {
                        Action       = "ArticleView",
                        ActionURL    = item.ActionURL,
                        Controller   = string.Empty,
                        CreatedDate  = item.CreatedDate,
                        ImageURL     = string.Empty,
                        ShortContent = item.ShortContent,
                        Title        = item.Title
                    });
                }

                response.Count  = list.Count;
                response.Result = list.OrderByDescending(n => n.CreatedDate).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();;

                if (list.Count == 0)
                {
                    return(new SearchResultResponse()
                    {
                        ErrorCode = (int)ErrorCode.Error,
                        Message = string.Format(Resources.Resource.text_searchNotFound, keyword.Substring(1, keyword.Length - 2))
                    });
                }

                return(response);
            }
            catch (Exception ex)
            {
                return(new SearchResultResponse()
                {
                    ErrorCode = (int)ErrorCode.Error,
                    Message = ex.Message
                });
            }
        }