예제 #1
0
 public ActionResult GetSearchHistory()
 {
     try
     {
         CompanyFacade fac = new CompanyFacade(this.CurrentClient.ApplicationDBConnectionString, Helper.UserName);
         var           lst = fac.GetSearchListResults(Helper.oUser.UserId).ToListof <SearchListEntity>();
         List <BuildListSearchModel> lstmodel = new List <BuildListSearchModel>();
         var serializer = new JavaScriptSerializer();
         foreach (SearchListEntity item in lst)
         {
             BuildListSearchModel model = new BuildListSearchModel();
             BuildListSearchModel obj   = serializer.Deserialize <BuildListSearchModel>(item.RequestJson);
             model.Request           = obj.Request;
             model.SearchResultsId   = item.SearchResultsId;
             model.RequestJson       = item.RequestJson;
             model.ResponseJson      = item.ResponseJson;
             model.RequestedDateTime = item.RequestDateTime == null ? string.Empty : Convert.ToDateTime(item.RequestDateTime).ToDatetimeFull();
             lstmodel.Add(model);
         }
         return(View("~/Views/BuildList/SearchHistory.cshtml", lstmodel));
     }
     catch (Exception)
     {
         return(null);
     }
 }
예제 #2
0
        // GET: BuildList
        public ActionResult Search()
        {
            BuildListSearchModel model = new BuildListSearchModel();

            model.Request = new SearchCriteriaRequest();
            model.Request.numberOfEmployees = new NumberOfEmployees();
            return(View(model));
        }
예제 #3
0
        public JsonResult Search(BuildListSearchModel model, int?page, int?sortby, int?sortorder, int?pagevalue)
        {
            Response response = new Response();

            try
            {
                #region  pagination
                if (!(sortby.HasValue && sortby.Value > 0))
                {
                    sortby = 1;
                }

                if (!(sortorder.HasValue && sortorder.Value > 0))
                {
                    sortorder = 2;
                }

                int currentPageIndex = page.HasValue ? page.Value : 1;
                int pageSize         = pagevalue.HasValue ? pagevalue.Value : 20;
                #endregion

                #region Set Viewbag
                ViewBag.SortBy    = sortby;
                ViewBag.SortOrder = sortorder;
                ViewBag.pageno    = currentPageIndex;
                ViewBag.pagevalue = pageSize;
                SessionHelper.BuildList_pageno = Convert.ToString(currentPageIndex);
                #endregion

                Utility.Utility api = new Utility.Utility();
                model.Request.pageSize   = ViewBag.pagevalue;
                model.Request.pageNumber = ViewBag.pageno;
                if (model.Request.usSicV4.Any())
                {
                    model.Request.usSicV4 = null;
                }

                if (model.Request.registrationNumbers.Any())
                {
                    model.Request.registrationNumbers = null;
                }
                model.Request.businessEntityType    = null;
                model.Request.familytreeRolesPlayed = null;

                if (model.Request.locationRadius.lat == 0 && model.Request.locationRadius.lon == 0 && model.Request.locationRadius.radius == 0 && string.IsNullOrEmpty(model.Request.locationRadius.unit))
                {
                    model.Request.locationRadius = null;
                }

                if (!model.Request.yearlyRevenue.maximumValue.HasValue && !model.Request.yearlyRevenue.minimumValue.HasValue)
                {
                    model.Request.yearlyRevenue = null;
                }

                if (model.Request.globalUltimateFamilyTreeMembersCount.maximumValue == 0 && model.Request.globalUltimateFamilyTreeMembersCount.minimumValue == 0)
                {
                    model.Request.globalUltimateFamilyTreeMembersCount = null;
                }

                if (model.Request.numberOfEmployees.informationScope == 0 && model.Request.numberOfEmployees.maximumValue == null && model.Request.numberOfEmployees.minimumValue == null)
                {
                    model.Request.numberOfEmployees = null;
                }
                if (model.Request.registrationNumbers.Count == 0)
                {
                    model.Request.registrationNumbers = null;
                }
                if (model.Request.usSicV4.Count == 0)
                {
                    model.Request.usSicV4 = null;
                }
                DateTime dtRequestedTime           = DateTime.Now;
                DateTime?dtResponseTime            = null;
                bool     IsFetchData               = true;
                List <SearchCandidate> lstsesstion = new List <SearchCandidate>();
                // Checking APIType is there or not
                string APItype = CommonMethod.GetThirdPartyProperty(ThirdPartyCode.DNB_BUILD_A_LIST.ToString(), ThirdPartyProperties.APIType.ToString());
                if (APItype != "")
                {
                    for (int i = 1; i <= (model.NoOfRecored / 20); i++)
                    {
                        if (IsFetchData)
                        {
                            model.Request.pageNumber = i;
                            model.Request.pageSize   = 20;

                            SearchCriteriaResponse objResponse = api.BuildAList(model.Request);
                            if (objResponse.searchCandidates != null)
                            {
                                lstsesstion.AddRange(objResponse.searchCandidates);
                                if ((i * 20) >= objResponse.candidatesMatchedQuantity)
                                {
                                    IsFetchData = false;
                                }
                            }
                            else
                            {
                                if (i == 1)
                                {
                                    response.Success        = false;
                                    response.ResponseString = objResponse.error != null ? objResponse.error.errorMessage : string.Empty;
                                }
                                IsFetchData = false;
                            }
                        }
                    }
                }

                dtResponseTime = DateTime.Now;

                if (lstsesstion.Any())
                {
                    SessionHelper.BuildList_Data = JsonConvert.SerializeObject(lstsesstion);
                    CompanyFacade fac          = new CompanyFacade(this.CurrentClient.ApplicationDBConnectionString, Helper.UserName);
                    var           RequestJson  = new JavaScriptSerializer().Serialize(model);
                    var           ResponseJson = new JavaScriptSerializer().Serialize(lstsesstion);
                    object        obj          = fac.InsertBuildSearch(Helper.oUser.UserId, RequestJson, ResponseJson, dtRequestedTime, dtResponseTime);
                    Session["Id"] = Convert.ToInt64(obj);
                }

                if (lstsesstion.Any())
                {
                    var skip = pageSize * (currentPageIndex - 1);
                    IPagedList <SearchCandidate> pglstpagedMonitorProfile = new StaticPagedList <SearchCandidate>(lstsesstion.Skip(skip).Take(pageSize).ToList(), currentPageIndex, pageSize, lstsesstion.Count);
                    dtResponseTime          = DateTime.Now;
                    response.Success        = true;
                    response.ResponseString = RenderViewAsString.RenderPartialViewToString(this, "~/Views/BuildList/SearchGrid.cshtml", pglstpagedMonitorProfile);
                }
                else
                {
                    if (APItype == "")
                    {
                        response.Success        = false;
                        response.ResponseString = CommonMessagesLang.msgNoDefaultKeyForSearch;
                    }
                }
                return(Json(response));
            }
            catch (Exception ex)
            {
                response.Success        = false;
                response.ResponseString = ex.Message;
                return(Json(response));
            }
        }