public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); return sSQL; }
private void Page_Load(object sender, System.EventArgs e) { // 06/09/2006 Paul. Remove data binding in the user controls. Binding is required, but only do so in the ASPX pages. //Page.DataBind(); string sUnifiedSearch = Sql.ToString(Request["txtUnifiedSearch"]); if ( !Sql.IsEmptyString(sUnifiedSearch.Trim()) ) { DbProviderFactory dbf = DbProviderFactories.GetFactory(); using ( IDbConnection con = dbf.CreateConnection() ) { string sSQL; sSQL = "select * " + ControlChars.CrLf + " from vwPROJECTS_List" + ControlChars.CrLf + " where 1 = 1 " + ControlChars.CrLf; using ( IDbCommand cmd = con.CreateCommand() ) { cmd.CommandText = sSQL; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); cmd.CommandText += sb.BuildQuery(" and ", "NAME"); #if DEBUG Page.RegisterClientScriptBlock("vwPROJECTS_List", Sql.ClientScriptBlock(cmd)); #endif try { using ( DbDataAdapter da = dbf.CreateDataAdapter() ) { ((IDbDataAdapter)da).SelectCommand = cmd; using ( DataTable dt = new DataTable() ) { da.Fill(dt); vwMain = dt.DefaultView; grdMain.DataSource = vwMain ; if ( !IsPostBack ) { grdMain.SortColumn = "NAME"; grdMain.SortOrder = "asc" ; grdMain.ApplySort(); grdMain.DataBind(); } } } } catch(Exception ex) { SplendidError.SystemError(new StackTrace(true).GetFrame(0), ex.Message); lblError.Text = ex.Message; } } } ctlListHeader.Visible = true; } else { ctlListHeader.Visible = false; } }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); // 12/06/2007 Paul. Keep the numeric test here because the case number will be a true numeric. // We may want to fix this in the future if we change the case number to an alpha numeric. if ( Information.IsNumeric(sUnifiedSearch) ) sSQL += sb.BuildQuery(" or ", "CASE_NUMBER" ); return sSQL; }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME"); if ( Information.IsNumeric(sUnifiedSearch) ) { sSQL += sb.BuildQuery(" or ", "PHONE_ALTERNATE"); sSQL += sb.BuildQuery(" or ", "PHONE_FAX" ); sSQL += sb.BuildQuery(" or ", "PHONE_OFFICE" ); } return sSQL; }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME" ); //sSQL += sb.BuildQuery(" or ", "LAST_NAME" ); //sSQL += sb.BuildQuery(" or ", "FIRST_NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); sSQL += sb.BuildQuery(" or ", "EMAIL1" ); sSQL += sb.BuildQuery(" or ", "EMAIL2" ); if ( Information.IsNumeric(sUnifiedSearch) ) { sSQL += sb.BuildQuery(" or ", "PHONE_HOME" ); sSQL += sb.BuildQuery(" or ", "PHONE_MOBILE"); sSQL += sb.BuildQuery(" or ", "PHONE_WORK" ); sSQL += sb.BuildQuery(" or ", "PHONE_OTHER" ); sSQL += sb.BuildQuery(" or ", "PHONE_FAX" ); } return sSQL; }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME" ); //sSQL += sb.BuildQuery(" or ", "LAST_NAME" ); //sSQL += sb.BuildQuery(" or ", "FIRST_NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); sSQL += sb.BuildQuery(" or ", "EMAIL1" ); sSQL += sb.BuildQuery(" or ", "EMAIL2" ); // 12/06/2007 Paul. Skip the attempt to be efficient. Something as simple as 555-1212 will fail the IsNumeric test. // if ( Information.IsNumeric(sUnifiedSearch) ) { sSQL += sb.BuildQuery(" or ", "PHONE_HOME" ); sSQL += sb.BuildQuery(" or ", "PHONE_MOBILE"); sSQL += sb.BuildQuery(" or ", "PHONE_WORK" ); sSQL += sb.BuildQuery(" or ", "PHONE_OTHER" ); sSQL += sb.BuildQuery(" or ", "PHONE_FAX" ); } return sSQL; }
protected void SetCustomSearchCriteria(ref SearchBuilder sb) { if (ContainingAssetsFromBrandId != 0) { string criteria = string.Format("{0}.OrderId IN (SELECT OrderId FROM [v_OrderItem] OI WHERE OI.AssetBrandId={1})", sb.TableAlias, ContainingAssetsFromBrandId); sb.Criteria.Add(criteria); } if (ContainingAssetsUploadedByUserId != 0) { string criteria = string.Format("{0}.OrderId IN (SELECT OrderId FROM [v_OrderItem] OI WHERE OI.AssetUploadUserId={1})", sb.TableAlias, ContainingAssetsUploadedByUserId); sb.Criteria.Add(criteria); } if (PendingOrdersOnly.HasValue) { sb.Criteria.Add(PendingOrdersOnly.Value ? "CompletionDate IS NULL" : "CompletionDate IS NOT NULL"); } if (!StringUtils.IsBlank(GeneralKeyword)) { JoinableList jList = new JoinableList(" OR "); if (NumericUtils.IsInt32(GeneralKeyword)) { jList.Add(string.Format("{0}={1}", Order.Columns.OrderId, GeneralKeyword)); } else { foreach (string column in new[] { "UserName", "UserEmail", "UserPrimaryBrandName" }) { jList.Add(string.Format("{0} LIKE '%{1}%'", column, SqlUtils.SafeValue(GeneralKeyword))); } } sb.Criteria.Add(jList); } }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME"); //sSQL += sb.BuildQuery(" or ", "LAST_NAME" ); //sSQL += sb.BuildQuery(" or ", "FIRST_NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); sSQL += sb.BuildQuery(" or ", "ASSISTANT"); sSQL += sb.BuildQuery(" or ", "EMAIL1"); sSQL += sb.BuildQuery(" or ", "EMAIL2"); if (Information.IsNumeric(sUnifiedSearch)) { sSQL += sb.BuildQuery(" or ", "PHONE_HOME"); sSQL += sb.BuildQuery(" or ", "PHONE_MOBILE"); sSQL += sb.BuildQuery(" or ", "PHONE_WORK"); sSQL += sb.BuildQuery(" or ", "PHONE_OTHER"); sSQL += sb.BuildQuery(" or ", "PHONE_FAX"); sSQL += sb.BuildQuery(" or ", "ASSISTANT_PHONE"); } return(sSQL); }
//public IEnumerable<laptop> getAll() //{ // var searchQuery = db.laptops; // return searchQuery; //} //public IHttpActionResult GetProduct(string features_hash) //{ // SearchParameters seacrhParameters = new SearchParameters(); // string[] ListQuery; // ListQuery = features_hash.Split('_'); // foreach (var item in ListQuery) // { // string typeQuery = item.Split('-')[0]; // string QueryData = item.Split('-')[1]; // switch (typeQuery) // { // case "1": // seacrhParameters.SearchTerm = QueryData; // break; // case "2": // seacrhParameters.Company.Add(QueryData); // break; // case "3": // seacrhParameters.ScreenResolution.Add(QueryData); // break; // case "4": // seacrhParameters.TypeName.Add(QueryData); // break; // case "5": // seacrhParameters.Inches.Add(float.Parse(QueryData)); // break; // case "6": // seacrhParameters.CPU.Add(QueryData); // break; // case "7": // seacrhParameters.Speed.Add(float.Parse(QueryData)); // break; // case "8": // seacrhParameters.Memory.Add(QueryData); // break; // case "9": // seacrhParameters.Ram.Add(Int32.Parse(QueryData)); // break; // case "10": // seacrhParameters.GPU.Add(QueryData); // break; // case "11": // seacrhParameters.OS.Add(QueryData); // break; // case "12": // seacrhParameters.PriceLow = double.Parse(QueryData); // break; // case "13": // seacrhParameters.PriceHigh = double.Parse(QueryData); // break; // case "14": // seacrhParameters.Weight.Add(float.Parse(QueryData)); // break; // case "15": // switch (QueryData) // { // case "1": // seacrhParameters.SortBy = SortCriteria.PriceHighToLow; // break; // case "2": // seacrhParameters.SortBy = SortCriteria.PriceLowToHigh; // break; // default: // seacrhParameters.SortBy = SortCriteria.Relevance; // break; // } // break; // default: // break; // } // } // var searchQuery = new SearchBuilder(). // SetSearchTerm(seacrhParameters.SearchTerm).//1 // SetCompany(seacrhParameters.Company).//2 // SetScreenResolution(seacrhParameters.ScreenResolution).//3 // SetTypeName(seacrhParameters.TypeName).//4 // SetInch(seacrhParameters.Inches).//5 // SetCPU(seacrhParameters.CPU).//6 // SetSpeed(seacrhParameters.Speed).//7 // SetMemory(seacrhParameters.Memory).//8 // SetRam(seacrhParameters.Ram).//9 // SetGPU(seacrhParameters.GPU).//10 // SetOS(seacrhParameters.OS).//11 // SetPriceLow(seacrhParameters.PriceLow).//12 // SetPriceHigh(seacrhParameters.PriceHigh).//13 // SetWeight(seacrhParameters.Weight)//14 // .SetSortBy(SortCriteria.PriceHighToLow)//15 // .Build(db); // return Ok(searchQuery); //} public IHttpActionResult Search(SearchParameters searchParameters) { FilterDbContext db = new FilterDbContext(); var searchQuery = new SearchBuilder(). SetSearchTerm(searchParameters.SearchTerm). SetCompany(searchParameters.Company). SetScreenResolution(searchParameters.ScreenResolution). SetTypeName(searchParameters.TypeName). SetInch(searchParameters.Inches). SetCPU(searchParameters.CPU). SetSpeed(searchParameters.Speed). SetMemory(searchParameters.Memory). SetRam(searchParameters.Ram). SetGPU(searchParameters.GPU). SetOS(searchParameters.OS). SetPriceLow(searchParameters.PriceLow). SetPriceHigh(searchParameters.PriceHigh). SetWeight(searchParameters.Weight) .SetSortBy(SortCriteria.PriceHighToLow) .Build(db); return(Ok(searchQuery)); }
public void SearchForEntity() { Search search = SearchBuilder.CreateSearch(); search.AsOf = this.AsOf; search.AddSearchCriteria(SearchCombinator.And) .AddCriteria("Name", SearchCondition.Contains, this.EntitySearchText); search.SearchOptions.OrderBy = "Name"; this.entityService.ExecuteAsyncSearch <PartyRole>( search, response => { IList <PartyRole> searchResults = response; this.PartyRoles = new ObservableCollection <SelectorViewModel>( searchResults.Select( x => new SelectorViewModel( x.MdmId().Value, x.Details.Name + " [" + x.PartyRoleType + "]")).OrderBy(y => y.Name)); }, this.eventAggregator); }
public static string UnifiedSearch(string sUnifiedSearch, IDbCommand cmd) { string sSQL = String.Empty; SearchBuilder sb = new SearchBuilder(sUnifiedSearch, cmd); sSQL += sb.BuildQuery(" and ", "NAME"); //sSQL += sb.BuildQuery(" or ", "LAST_NAME" ); //sSQL += sb.BuildQuery(" or ", "FIRST_NAME" ); sSQL += sb.BuildQuery(" or ", "ACCOUNT_NAME"); sSQL += sb.BuildQuery(" or ", "ASSISTANT"); sSQL += sb.BuildQuery(" or ", "EMAIL1"); sSQL += sb.BuildQuery(" or ", "EMAIL2"); // 12/06/2007 Paul. Skip the attempt to be efficient. Something as simple as 555-1212 will fail the IsNumeric test. // if ( Information.IsNumeric(sUnifiedSearch) ) { sSQL += sb.BuildQuery(" or ", "PHONE_HOME"); sSQL += sb.BuildQuery(" or ", "PHONE_MOBILE"); sSQL += sb.BuildQuery(" or ", "PHONE_WORK"); sSQL += sb.BuildQuery(" or ", "PHONE_OTHER"); sSQL += sb.BuildQuery(" or ", "PHONE_FAX"); sSQL += sb.BuildQuery(" or ", "ASSISTANT_PHONE"); } return(sSQL); }
private static Entity Search(string url) { var query = SearchUrlPattern.Match(HttpUtility.UrlDecode(url)).Groups[1].Value; var searchBuilder = new SearchBuilder().WithQuery(query); var nameValueCollection = HttpUtility.ParseQueryString(new Uri(RedditBaseAddress, url).Query); IEnumerable <Thing> things; if (nameValueCollection.AllKeys.Contains("type")) { var type = nameValueCollection["type"]; var count = nameValueCollection.AllKeys.Contains("count") ? int.Parse(nameValueCollection["count"]) : 0; searchBuilder.WithCount(count); if (type == "subreddit") { things = new Reddit().SearchSubreddits(query).Skip(count).Take(25); searchBuilder.OnlySubreddit(); } else { things = new Reddit().Search <Thing>(query).Skip(count).Take(25); searchBuilder.OnlyPost(); } } else { things = new Reddit().SearchSubreddits(query).Take(3).Concat(new Reddit().Search <Thing>(query).Take(22)); } return(searchBuilder.Build(things)); }
static void Main(string[] args) { string password, answer; Searchable category; //check password do { Console.Write("Password: "******"Password: "******"Password correct!"); GreetTheUser(); //TODO: make it less ugly pls //main program loop while (!EXIT) { do { Console.WriteLine($"What are you looking for?"); Console.WriteLine("[c] - character"); Console.WriteLine("[l] - location"); Console.Write(SHELL_TEXT); answer = Console.ReadLine().Replace(SHELL_TEXT, string.Empty); if (answer.ToLower().Equals("c")) { category = Searchable.Character; } else if (answer.ToLower().Equals("l")) { category = Searchable.Location; } else if (answer.ToLower().Equals("exit")) { EXIT = true; category = Searchable.ABANDON; } else { category = Searchable.Null; } } while (category.Equals(Searchable.Null)); if (EXIT) { continue; } //get filters Dictionary <string, string> filters = GetUserDefinedFilters(category); Console.WriteLine("Search pending..."); Search_ search = SearchBuilder.Init() .WithSearchCategory(category) .WithSearchFilters(filters) .Build(); try { List <dynamic> results = search.GetResult(); if (category.Equals(Searchable.Character)) { List <Character> characters = new List <Character>(); foreach (var result in results) { Character character = CharacterBuilder.Init() .WithName(result.name) .WithStatus(result.status) .OfGender(result.gender) .From(result.origin.name) .SpeciesOf(result.species) .PlayedIn((ushort)result.episode.Count) .LastSeenAt(result.location.name) .Build(); characters.Add(character); } _ = new PDFCreator($"characters.pdf", characters); Console.WriteLine("Enjoy your results, nerd!\n"); } else { List <Location> locations = new List <Location>(); foreach (var result in results) { Location location = LocationBuilder.Init() .WithName(result.name) .FromDimension(result.dimension) .OfType(result.type) .WithThatManyResidents((ushort)result.residents.Count) .Build(); locations.Add(location); } _ = new PDFCreator($"locations.pdf", locations); } } catch (System.Net.Http.HttpRequestException) { Console.WriteLine("There were no results for the search with your filters. Try again or exit. \n"); } } Console.WriteLine("Thanks for using the app!"); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (AssetWorkflowUserIdList != null && AssetWorkflowUserIdList.Count > 0) { JoinableList list = new JoinableList(AssetWorkflowUserIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", AssetWorkflowUser.Columns.AssetWorkflowUserId)); } if (AssetWorkflowUserId.HasValue) { sb.Criteria.Add(string.Format("{0}=@assetWorkflowUserId", AssetWorkflowUser.Columns.AssetWorkflowUserId)); sb.AddDataParameter("@assetWorkflowUserId", AssetWorkflowUserId.Value); } if (AssetWorkflowId != 0) { sb.Criteria.Add(string.Format("{0}=@assetWorkflowId", AssetWorkflowUser.Columns.AssetWorkflowId)); sb.AddDataParameter("@assetWorkflowId", AssetWorkflowId); } if (UserId != 0) { sb.Criteria.Add(string.Format("{0}=@userId", AssetWorkflowUser.Columns.UserId)); sb.AddDataParameter("@userId", UserId); } if (Position != 0) { sb.Criteria.Add(string.Format("{0}=@position", AssetWorkflowUser.Columns.Position)); sb.AddDataParameter("@position", Position); } if (Comments != String.Empty) { sb.Criteria.Add(string.Format("{0}=@comments", AssetWorkflowUser.Columns.Comments)); sb.AddDataParameter("@comments", Comments); } if (AssetWorkflowUserStatusId != 0) { sb.Criteria.Add(string.Format("{0}=@assetWorkflowUserStatusId", AssetWorkflowUser.Columns.AssetWorkflowUserStatusId)); sb.AddDataParameter("@assetWorkflowUserStatusId", AssetWorkflowUserStatusId); } if (CreateDate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@createDate", AssetWorkflowUser.Columns.CreateDate)); sb.AddDataParameter("@createDate", CreateDate); } if (LastUpdate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@lastUpdate", AssetWorkflowUser.Columns.LastUpdate)); sb.AddDataParameter("@lastUpdate", LastUpdate); } if (IsDeleted.HasValue) { sb.Criteria.Add(string.Format("{0}=@isDeleted", AssetWorkflowUser.Columns.IsDeleted)); sb.AddDataParameter("@isDeleted", SqlUtils.BitValue(IsDeleted.Value)); } SetCustomSearchCriteria(ref sb); }
public void TestInitialize() { target = new SearchBuilder<SampleClass>(); }
/// <summary> /// Begins Fluent Builder chain for Sql Server searches /// </summary> /// <param name="sb">The sb.</param> /// <param name="connection">The connection.</param> /// <returns></returns> public static SqlServerCollectorBuilder Targeting(this SearchBuilder sb, IDbConnection connection) { return(new SqlServerCollectorBuilder(connection)); }
public SearchBuilderConfig(SearchBuilder searchBuilder) { SearchBuilder = searchBuilder; }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (AuditAssetSearchIdList != null && AuditAssetSearchIdList.Count > 0) { JoinableList list = new JoinableList(AuditAssetSearchIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", AuditAssetSearch.Columns.AuditAssetSearchId)); } if (AuditAssetSearchId.HasValue) { sb.Criteria.Add(string.Format("{0}=@auditAssetSearchId", AuditAssetSearch.Columns.AuditAssetSearchId)); sb.AddDataParameter("@auditAssetSearchId", AuditAssetSearchId.Value); } if (SessionId != String.Empty) { sb.Criteria.Add(string.Format("{0}=@sessionId", AuditAssetSearch.Columns.SessionId)); sb.AddDataParameter("@sessionId", SessionId); } if (IpAddress != String.Empty) { sb.Criteria.Add(string.Format("{0}=@ipAddress", AuditAssetSearch.Columns.IpAddress)); sb.AddDataParameter("@ipAddress", IpAddress); } if (UserId != 0) { sb.Criteria.Add(string.Format("{0}=@userId", AuditAssetSearch.Columns.UserId)); sb.AddDataParameter("@userId", UserId); } if (Date != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@date", AuditAssetSearch.Columns.Date)); sb.AddDataParameter("@date", Date); } if (SearchKeyword != String.Empty) { sb.Criteria.Add("SearchKeyword=@searchKeyword"); sb.AddDataParameter("@searchKeyword", SearchKeyword); } if (AssetId.HasValue) { if (AssetId.Value == 0) { sb.Criteria.Add("AssetId IS NULL"); } else { sb.Criteria.Add("AssetId=@assetId"); sb.AddDataParameter("@assetId", AssetId.Value); } } if (UserName != String.Empty) { sb.Criteria.Add("UserName=@userName"); sb.AddDataParameter("@userName", UserName); } SetCustomSearchCriteria(ref sb); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (AssetOrderHistoryId.HasValue) { sb.Criteria.Add("AssetOrderHistoryId=@auditAssetHistoryId"); sb.AddDataParameter("@auditAssetHistoryId", AssetOrderHistoryId.Value); } if (AssetId.HasValue) { sb.Criteria.Add("AssetId=@assetId"); sb.AddDataParameter("@assetId", AssetId.Value); } if (OrderId.HasValue) { sb.Criteria.Add("OrderId=@orderId"); sb.AddDataParameter("@orderId", OrderId.Value); } if (OrderDate.HasValue) { sb.Criteria.Add("OrderDate=@orderDate"); sb.AddDataParameter("@orderDate", OrderDate.Value); } if (DeadlineDate.HasValue) { sb.Criteria.Add("DeadlineDate=@deadlineDate"); sb.AddDataParameter("@deadlineDate", DeadlineDate.Value); } if (UserEmail != String.Empty) { sb.Criteria.Add("UserEmail=@userEmail"); sb.AddDataParameter("@userEmail", UserEmail); } if (UserId.HasValue) { sb.Criteria.Add("UserId=@userId"); sb.AddDataParameter("@userId", UserId.Value); } if (UserName != String.Empty) { sb.Criteria.Add("UserName=@userName"); sb.AddDataParameter("@userName", UserName); } if (Notes != String.Empty) { sb.Criteria.Add("Notes=@notes"); sb.AddDataParameter("@notes", Notes); } if (OrderItemStatusDate.HasValue) { sb.Criteria.Add("OrderItemStatusDate=@orderItemStatusDate"); sb.AddDataParameter("@orderItemStatusDate", OrderItemStatusDate.Value); } if (OrderItemStatusId.HasValue) { sb.Criteria.Add("OrderItemStatusId=@orderItemStatusId"); sb.AddDataParameter("@orderItemStatusId", OrderItemStatusId); } SetCustomSearchCriteria(ref sb); }
protected void SetCustomSearchCriteria(ref SearchBuilder sb) { if (UserIdFinder != null) { sb.Criteria.Add("UserId IN (" + UserIdFinder.FindQuery + ")"); } if (!StringUtils.IsBlank(Keyword)) { JoinableList jList = new JoinableList(" OR "); if (NumericUtils.IsInt32(Keyword)) { jList.Add(string.Format("({0}={1})", AuditUserHistory.Columns.UserId, Keyword)); } string safeSector = SqlUtils.SafeValue(Keyword); jList.Add(string.Format("({0} LIKE '%{1}%')", AuditUserHistory.Columns.SessionId, safeSector)); jList.Add(string.Format("({0} LIKE '%{1}%')", AuditUserHistory.Columns.IpAddress, safeSector)); jList.Add(string.Format("({0} LIKE '%{1}%')", AuditUserHistory.Columns.Notes, safeSector)); jList.Add(string.Format("(Description LIKE '%{0}%')", safeSector)); jList.Add(string.Format("(UserName LIKE '%{0}%')", safeSector)); jList.Add(string.Format("(UserEmail LIKE '%{0}%')", safeSector)); sb.Criteria.Add(jList.ToString()); } if (StartDate.HasValue) { string criteria = string.Format("[Date] >= '{0}'", StartDate.Value.ToString("yyyy-MM-dd")); sb.Criteria.Add(criteria); } if (EndDate.HasValue) { string criteria = string.Format("[Date] <= '{0}'", EndDate.Value.ToString("yyyy-MM-dd")); sb.Criteria.Add(criteria); } if (SuccessfulLogins) { // TODO: Doing a LIKE query is not very efficient. Need to change this... seperate login events perhaps // and add an AuditUserAction for Successful Login and Login Errors string criteria = string.Format("(([{0}]={1}) AND ([Notes] LIKE 'Login Successful.%'))", AuditUserHistory.Columns.AuditUserActionId, Convert.ToInt32(AuditUserAction.UserLogin)); sb.Criteria.Add(criteria); } if (AuditUserActionList.Count > 0) { JoinableList jList = new JoinableList(); foreach (AuditUserAction action in AuditUserActionList) { jList.Add(Convert.ToInt32(action)); } sb.Criteria.Add("AuditUserActionId IN (" + jList + ")"); } Debug.WriteLine(sb.GetCountQuery()); }
protected void SetCustomSearchCriteria(ref SearchBuilder sb) { // Put custom search criteria here }
public SearchCriteriaBuilder<TResult> Where<T>(DataServiceCriteria criteria, T value) { return SearchBuilder.And(criteria, value); }
public void Setup() { this._sb = new SearchBuilder(); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (OrderIdList != null && OrderIdList.Count > 0) { JoinableList list = new JoinableList(OrderIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", Order.Columns.OrderId)); } if (OrderId.HasValue) { sb.Criteria.Add(string.Format("{0}=@orderId", Order.Columns.OrderId)); sb.AddDataParameter("@orderId", OrderId.Value); } if (UserId != 0) { sb.Criteria.Add(string.Format("{0}=@userId", Order.Columns.UserId)); sb.AddDataParameter("@userId", UserId); } if (OrderDate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@orderDate", Order.Columns.OrderDate)); sb.AddDataParameter("@orderDate", OrderDate); } if (CompletionDate != null) { sb.Criteria.Add(string.Format("{0}=@completionDate", Order.Columns.CompletionDate)); sb.AddDataParameter("@completionDate", CompletionDate.Value); } if (UserName != String.Empty) { sb.Criteria.Add("UserName=@userName"); sb.AddDataParameter("@userName", UserName); } if (UserEmail != String.Empty) { sb.Criteria.Add("UserEmail=@userEmail"); sb.AddDataParameter("@userEmail", UserEmail); } if (UserPrimaryBrandId.HasValue) { if (UserPrimaryBrandId.Value == 0) { sb.Criteria.Add("UserPrimaryBrandId IS NULL"); } else { sb.Criteria.Add("UserPrimaryBrandId=@userPrimaryBrandId"); sb.AddDataParameter("@userPrimaryBrandId", UserPrimaryBrandId.Value); } } if (UserPrimaryBrandName != String.Empty) { sb.Criteria.Add("UserPrimaryBrandName=@userPrimaryBrandName"); sb.AddDataParameter("@userPrimaryBrandName", UserPrimaryBrandName); } if (AssetCount.HasValue) { if (AssetCount.Value == 0) { sb.Criteria.Add("AssetCount IS NULL"); } else { sb.Criteria.Add("AssetCount=@assetCount"); sb.AddDataParameter("@assetCount", AssetCount.Value); } } if (IsPending.HasValue) { sb.Criteria.Add("IsPending=@isPending"); sb.AddDataParameter("@isPending", SqlUtils.BitValue(IsPending.Value)); } if (DeadlineDate != null) { sb.Criteria.Add("DeadlineDate=@deadlineDate"); sb.AddDataParameter("@deadlineDate", DeadlineDate.Value); } SetCustomSearchCriteria(ref sb); }
public SearchConfiguration(IElasticClient elasticClient, ICoreOperations esCoreOperation, ISearchOperations esSearchOperation, IOptions <EsConfigOptions> options, SearchBuilder searchBuilder) : base(elasticClient, esCoreOperation, esSearchOperation, options, searchBuilder) { var mappingRequrest = new PutMappingRequest("customer"); mappingRequrest.Properties = SearchBuilder.Entity <CustomerModel>().Descriptor; elasticClient.Map(mappingRequrest); }
public void TestInitialize() { var builder = new SearchBuilder<SampleClass>(); target = builder["StringProperty"]; }
protected override Search CreateSearch() { this.s = SearchBuilder.CreateSearch().NotMultiPage().NoMaxPageSize(); this.s.AddSearchCriteria(SearchCombinator.Or).AddCriteria("Name", SearchCondition.Equals, "TestParty"); return(this.s); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (AssetWorkflowCommenterIdList != null && AssetWorkflowCommenterIdList.Count > 0) { JoinableList list = new JoinableList(AssetWorkflowCommenterIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", AssetWorkflowCommenter.Columns.AssetWorkflowCommenterId)); } if (AssetWorkflowCommenterId.HasValue) { sb.Criteria.Add(string.Format("{0}=@assetWorkflowCommenterId", AssetWorkflowCommenter.Columns.AssetWorkflowCommenterId)); sb.AddDataParameter("@assetWorkflowCommenterId", AssetWorkflowCommenterId.Value); } if (UserId != 0) { sb.Criteria.Add(string.Format("{0}=@userId", AssetWorkflowCommenter.Columns.UserId)); sb.AddDataParameter("@userId", UserId); } if (InvitingAssetWorkflowUserId != 0) { sb.Criteria.Add(string.Format("{0}=@invitingAssetWorkflowUserId", AssetWorkflowCommenter.Columns.InvitingAssetWorkflowUserId)); sb.AddDataParameter("@invitingAssetWorkflowUserId", InvitingAssetWorkflowUserId); } if (InvitingUserMessage != String.Empty) { sb.Criteria.Add(string.Format("{0}=@invitingUserMessage", AssetWorkflowCommenter.Columns.InvitingUserMessage)); sb.AddDataParameter("@invitingUserMessage", InvitingUserMessage); } if (Comments != String.Empty) { sb.Criteria.Add(string.Format("{0}=@comments", AssetWorkflowCommenter.Columns.Comments)); sb.AddDataParameter("@comments", Comments); } if (CreateDate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@createDate", AssetWorkflowCommenter.Columns.CreateDate)); sb.AddDataParameter("@createDate", CreateDate); } if (LastUpdate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@lastUpdate", AssetWorkflowCommenter.Columns.LastUpdate)); sb.AddDataParameter("@lastUpdate", LastUpdate); } if (InvitingUserId.HasValue) { if (InvitingUserId.Value == 0) { sb.Criteria.Add("InvitingUserId IS NULL"); } else { sb.Criteria.Add("InvitingUserId=@invitingUserId"); sb.AddDataParameter("@invitingUserId", InvitingUserId.Value); } } if (AssetWorkflowId.HasValue) { if (AssetWorkflowId.Value == 0) { sb.Criteria.Add("AssetWorkflowId IS NULL"); } else { sb.Criteria.Add("AssetWorkflowId=@assetWorkflowId"); sb.AddDataParameter("@assetWorkflowId", AssetWorkflowId.Value); } } SetCustomSearchCriteria(ref sb); }
/// <summary> /// Begins Fluent Builder chain for Sql Server searches (fine-control over dependencies) /// </summary> /// <param name="sb">The sb.</param> /// <param name="dataReaderFactory">The data reader factory.</param> /// <param name="statementProvider">The statement provider.</param> /// <returns></returns> public static SqlServerCollectorBuilder Targeting(this SearchBuilder sb, ISqlDataReaderFactory dataReaderFactory, IConsolidatedSqlStatementProvider statementProvider) { return(new SqlServerCollectorBuilder(dataReaderFactory, statementProvider)); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (OrderItemIdList != null && OrderItemIdList.Count > 0) { JoinableList list = new JoinableList(OrderItemIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", OrderItem.Columns.OrderItemId)); } if (OrderItemId.HasValue) { sb.Criteria.Add(string.Format("{0}=@orderItemId", OrderItem.Columns.OrderItemId)); sb.AddDataParameter("@orderItemId", OrderItemId.Value); } if (OrderId != 0) { sb.Criteria.Add(string.Format("{0}=@orderId", OrderItem.Columns.OrderId)); sb.AddDataParameter("@orderId", OrderId); } if (AssetId != 0) { sb.Criteria.Add(string.Format("{0}=@assetId", OrderItem.Columns.AssetId)); sb.AddDataParameter("@assetId", AssetId); } if (Notes != String.Empty) { sb.Criteria.Add(string.Format("{0}=@notes", OrderItem.Columns.Notes)); sb.AddDataParameter("@notes", Notes); } if (RequiredByDate != null) { sb.Criteria.Add(string.Format("{0}=@requiredByDate", OrderItem.Columns.RequiredByDate)); sb.AddDataParameter("@requiredByDate", RequiredByDate.Value); } if (OrderItemStatusId != 0) { sb.Criteria.Add(string.Format("{0}=@orderItemStatusId", OrderItem.Columns.OrderItemStatusId)); sb.AddDataParameter("@orderItemStatusId", OrderItemStatusId); } if (OrderItemStatusDate != null) { sb.Criteria.Add(string.Format("{0}=@orderItemStatusDate", OrderItem.Columns.OrderItemStatusDate)); sb.AddDataParameter("@orderItemStatusDate", OrderItemStatusDate.Value); } if (OrderItemStatusUserId != null) { sb.Criteria.Add(string.Format("{0}=@orderItemStatusUserId", OrderItem.Columns.OrderItemStatusUserId)); sb.AddDataParameter("@orderItemStatusUserId", OrderItemStatusUserId.Value); } if (AssignedToUserId != null) { sb.Criteria.Add(string.Format("{0}=@assignedToUserId", OrderItem.Columns.AssignedToUserId)); sb.AddDataParameter("@assignedToUserId", AssignedToUserId.Value); } if (CreateDate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@createDate", OrderItem.Columns.CreateDate)); sb.AddDataParameter("@createDate", CreateDate); } if (UserId.HasValue) { if (UserId.Value == 0) { sb.Criteria.Add("UserId IS NULL"); } else { sb.Criteria.Add("UserId=@userId"); sb.AddDataParameter("@userId", UserId.Value); } } if (AssetUploadUserId.HasValue) { if (AssetUploadUserId.Value == 0) { sb.Criteria.Add("AssetUploadUserId IS NULL"); } else { sb.Criteria.Add("AssetUploadUserId=@assetUploadUserId"); sb.AddDataParameter("@assetUploadUserId", AssetUploadUserId.Value); } } if (AssetBrandId.HasValue) { if (AssetBrandId.Value == 0) { sb.Criteria.Add("AssetBrandId IS NULL"); } else { sb.Criteria.Add("AssetBrandId=@assetBrandId"); sb.AddDataParameter("@assetBrandId", AssetBrandId.Value); } } SetCustomSearchCriteria(ref sb); }
private IQueryResponse<Tweet> ExecuteRaw(string query, int maxDocuments) { var searchBuilder = new SearchBuilder(); searchBuilder.Query(query).Size(maxDocuments); return _client.Search<Tweet>(searchBuilder); }
public IHttpActionResult GetProduct(string features_hash) { SearchParameters seacrhParameters = new SearchParameters(); string[] ListQuery; ListQuery = features_hash.Split('_'); foreach (var item in ListQuery) { string typeQuery = item.Split('-')[0]; string QueryData = item.Split('-')[1]; switch (typeQuery) { case "1": seacrhParameters.SearchTerm = QueryData; break; case "2": seacrhParameters.Company.Add(QueryData); break; case "3": seacrhParameters.ScreenResolution.Add(QueryData); break; case "4": seacrhParameters.TypeName.Add(QueryData); break; case "5": seacrhParameters.Inches.Add(float.Parse(QueryData)); break; case "6": seacrhParameters.CPU.Add(QueryData); break; case "7": seacrhParameters.Speed.Add(float.Parse(QueryData)); break; case "8": seacrhParameters.Memory.Add(QueryData); break; case "9": seacrhParameters.Ram.Add(Int32.Parse(QueryData)); break; case "10": seacrhParameters.GPU.Add(QueryData); break; case "11": seacrhParameters.OS.Add(QueryData); break; case "12": seacrhParameters.PriceLow = double.Parse(QueryData); break; case "13": seacrhParameters.PriceHigh = double.Parse(QueryData); break; case "14": seacrhParameters.Weight.Add(float.Parse(QueryData)); break; case "15": switch (QueryData) { case "1": seacrhParameters.SortBy = SortCriteria.PriceHighToLow; break; case "2": seacrhParameters.SortBy = SortCriteria.PriceLowToHigh; break; default: seacrhParameters.SortBy = SortCriteria.Relevance; break; } break; default: break; } } var searchQuery = new SearchBuilder(). SetSearchTerm(seacrhParameters.SearchTerm). //1 SetCompany(seacrhParameters.Company). //2 SetScreenResolution(seacrhParameters.ScreenResolution). //3 SetTypeName(seacrhParameters.TypeName). //4 SetInch(seacrhParameters.Inches). //5 SetCPU(seacrhParameters.CPU). //6 SetSpeed(seacrhParameters.Speed). //7 SetMemory(seacrhParameters.Memory). //8 SetRam(seacrhParameters.Ram). //9 SetGPU(seacrhParameters.GPU). //10 SetOS(seacrhParameters.OS). //11 SetPriceLow(seacrhParameters.PriceLow). //12 SetPriceHigh(seacrhParameters.PriceHigh). //13 SetWeight(seacrhParameters.Weight) //14 .SetSortBy(SortCriteria.PriceHighToLow) //15 .Build(db); return(Ok(searchQuery)); }
protected void SetCustomSearchCriteria(ref SearchBuilder sb) { sb.Table = "[v_User]"; if (CompanyName.ToLower() == "all") { sb.Criteria.Remove(string.Format("{0}=@companyName", User.Columns.CompanyName)); } if (MinimumUserRoleId > 0) { string sql = string.Format("{0} >= {1}", User.Columns.UserRoleId, MinimumUserRoleId); sb.Criteria.Add(sql); } if (MaximumUserRoleId > 0) { string sql = string.Format("{0} <= {1}", User.Columns.UserRoleId, MaximumUserRoleId); sb.Criteria.Add(sql); } if (FuzzyEmail != string.Empty) { string sql = string.Format("{0} LIKE '%{1}%'", User.Columns.Email, FuzzyEmail.Replace("'", "''")); sb.Criteria.Add(sql); } if (ExpiredAndSuspendedAccountsOnly) { sb.Criteria.Add("((IsAccountExpired = 1) OR (IsSuspended = 1))"); } if (PrimaryBrandId == Int32.MinValue) { // ------------------------------------------------------------- // Criteria checks // ------------------------------------------------------------- // null = ignore (automatic) // int = int (automatic) // Int32.MinValue = IS NULL (handled below) // ------------------------------------------------------------- sb.Criteria.Remove(string.Format("{0}=@primaryBrandId", User.Columns.PrimaryBrandId)); sb.Criteria.Add(string.Format("{0} IS NULL", User.Columns.PrimaryBrandId)); } if (!RegisterDateRange.IsNull) { if (RegisterDateRange.StartDate.HasValue) { string criteria = string.Format("{0} >= @RegisterDateRangeStartDate", User.Columns.RegisterDate); sb.Criteria.Add(criteria); sb.AddDataParameter("@RegisterDateRangeStartDate", RegisterDateRange.StartDate); } if (RegisterDateRange.EndDate.HasValue) { string criteria = string.Format("{0} <= @RegisterDateRangeEndDate", User.Columns.RegisterDate); sb.Criteria.Add(criteria); sb.AddDataParameter("@RegisterDateRangeEndDate", RegisterDateRange.EndDate); } } //-------------------------------------------------------------------- // Brand Admins are restricted to seeing users in their own BU // or from companies they have created, so we modify the where clause // accordingly to reflect this. //-------------------------------------------------------------------- if (BrandAdministratorId != 0) { // Ensure that the primary brand ID is specified if (!sb.Criteria.Contains(string.Format("{0}=@primaryBrandId", User.Columns.PrimaryBrandId))) { throw new SystemException("PrimaryBrandId must be specified when BrandAdministratorId is specified"); } // Create list to hold criteria JoinableList jList = new JoinableList(" AND "); // Remove primary brand ID from SQL sb.Criteria.Remove(string.Format("{0}=@primaryBrandId", User.Columns.PrimaryBrandId)); // Update with correct syntax jList.Add(PrimaryBrandId == 0 ? string.Format("{0} IS NULL", User.Columns.PrimaryBrandId) : string.Format("{0}={1}", User.Columns.PrimaryBrandId, PrimaryBrandId)); // Add the criteria sb.Criteria.Add(jList.ToString()); } }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (AuditUserHistoryIdList != null && AuditUserHistoryIdList.Count > 0) { JoinableList list = new JoinableList(AuditUserHistoryIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", AuditUserHistory.Columns.AuditUserHistoryId)); } if (AuditUserHistoryId.HasValue) { sb.Criteria.Add(string.Format("{0}=@auditUserHistoryId", AuditUserHistory.Columns.AuditUserHistoryId)); sb.AddDataParameter("@auditUserHistoryId", AuditUserHistoryId.Value); } if (SessionId != String.Empty) { sb.Criteria.Add(string.Format("{0}=@sessionId", AuditUserHistory.Columns.SessionId)); sb.AddDataParameter("@sessionId", SessionId); } if (IpAddress != String.Empty) { sb.Criteria.Add(string.Format("{0}=@ipAddress", AuditUserHistory.Columns.IpAddress)); sb.AddDataParameter("@ipAddress", IpAddress); } if (AuditUserActionId != 0) { sb.Criteria.Add(string.Format("{0}=@auditUserActionId", AuditUserHistory.Columns.AuditUserActionId)); sb.AddDataParameter("@auditUserActionId", AuditUserActionId); } if (UserId != 0) { sb.Criteria.Add(string.Format("{0}=@userId", AuditUserHistory.Columns.UserId)); sb.AddDataParameter("@userId", UserId); } if (Notes != String.Empty) { sb.Criteria.Add(string.Format("{0}=@notes", AuditUserHistory.Columns.Notes)); sb.AddDataParameter("@notes", Notes); } if (Date != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@date", AuditUserHistory.Columns.Date)); sb.AddDataParameter("@date", Date); } if (Description != String.Empty) { sb.Criteria.Add("Description=@description"); sb.AddDataParameter("@description", Description); } if (UserName != String.Empty) { sb.Criteria.Add("UserName=@userName"); sb.AddDataParameter("@userName", UserName); } if (UserEmail != String.Empty) { sb.Criteria.Add("UserEmail=@userEmail"); sb.AddDataParameter("@userEmail", UserEmail); } if (PrimaryBrandId.HasValue) { if (PrimaryBrandId.Value == 0) { sb.Criteria.Add("PrimaryBrandId IS NULL"); } else { sb.Criteria.Add("PrimaryBrandId=@primaryBrandId"); sb.AddDataParameter("@primaryBrandId", PrimaryBrandId.Value); } } SetCustomSearchCriteria(ref sb); }
protected void ParseSearchCriteria(List <FieldMetadata> targetCriteriaFields, MemberSuiteObject criteria, SearchBuilder sb) { foreach (var fieldMetadata in targetCriteriaFields) { string fieldName = Formats.GetSafeFieldName(fieldMetadata.Name); bool found = false; if (_isValidRange(criteria.SafeGetValue(fieldName + "__from"))) { // let's create a greater than sb.AddOperation(Expr.IsGreaterThanOrEqualTo(fieldMetadata.Name, criteria[fieldName + "__from"]), SearchOperationGroupType.And); found = true; } if (_isValidRange(criteria.SafeGetValue(fieldName + "__to"))) { // let's create a less than sb.AddOperation(Expr.IsLessThanOrEqual(fieldMetadata.Name, criteria[fieldName + "__to"]), SearchOperationGroupType.And); found = true; } if (found || !criteria.Fields.ContainsKey(fieldName)) { continue; } var fieldValue = criteria.Fields[fieldName]; if (fieldValue == null) { continue; } SearchOperation so = new Equals(); //default so.ValuesToOperateOn = new List <object> { fieldValue }; if (fieldValue is string) { string fieldValueAsString = (string)fieldValue; if (String.IsNullOrWhiteSpace(fieldValueAsString)) { continue; } if (fieldMetadata.DataType == FieldDataType.Boolean) { bool b = false; if (Boolean.TryParse(fieldValueAsString, out b)) { so.ValuesToOperateOn = new List <object>() { b } } ; } else { so = new Contains(); //string should use contains instead of equals so.ValuesToOperateOn = new List <object>() { fieldValueAsString.Trim() }; } } if (fieldValue is List <string> ) { List <string> fieldValueAsList = fieldValue as List <string>; if (fieldValueAsList.Count == 0) { continue; } so = new ContainsOneOfTheFollowing(); //Lists just look for one hit List <object> values = new List <object>(); values.AddRange(fieldValueAsList); so.ValuesToOperateOn = values; } so.FieldName = fieldMetadata.Name; sb.AddOperation(so, SearchOperationGroupType.And); } }
private void OnIsActiveChanged(object sender, EventArgs eventArgs) { if (this.isActive) { Search search = SearchBuilder.CreateSearch(); var context = MyRegion(this.regionManager.Regions).Context as Tuple <int, DateTime?, string>; search.AsOf = context.Item2; string field; switch (context.Item3) { case "LegalEntity": field = "Parent.Id"; break; case "Party": field = "PartyRole.Party.Id"; break; default: field = context.Item3 + ".Id"; break; } if (field.Contains("|")) { search.SearchFields.Combinator = SearchCombinator.Or; var fields = field.Split(new[] { '|' }); foreach (string f in fields) { search.AddSearchCriteria(SearchCombinator.And) .AddCriteria(f, SearchCondition.NumericEquals, context.Item1.ToString()); } } else { search.AddSearchCriteria(SearchCombinator.And) .AddCriteria(field, SearchCondition.NumericEquals, context.Item1.ToString()); } this.entityService.ExecuteAsyncSearch <LegalEntity>( this.search = search, response => { IList <LegalEntity> searchResults = response; this.LegalEntitys = new ObservableCollection <LegalEntityViewModel>( searchResults.Select( x => new LegalEntityViewModel( new EntityWithETag <LegalEntity>(x, null), this.eventAggregator)).OrderBy(y => y.Name)); }, this.eventAggregator, false); return; } this.LegalEntitys = new ObservableCollection <LegalEntityViewModel>(); }
protected override void SetSearchCriteria(ref SearchBuilder sb) { if (HomepageIdList != null && HomepageIdList.Count > 0) { JoinableList list = new JoinableList(HomepageIdList); sb.Criteria.Add(string.Format("{0} IN (" + list + ")", Homepage.Columns.HomepageId)); } if (HomepageId.HasValue) { sb.Criteria.Add(string.Format("{0}=@homepageId", Homepage.Columns.HomepageId)); sb.AddDataParameter("@homepageId", HomepageId.Value); } if (BrandId != 0) { sb.Criteria.Add(string.Format("{0}=@brandId", Homepage.Columns.BrandId)); sb.AddDataParameter("@brandId", BrandId); } if (IntroText != String.Empty) { sb.Criteria.Add(string.Format("{0}=@introText", Homepage.Columns.IntroText)); sb.AddDataParameter("@introText", IntroText); } if (Url1 != String.Empty) { sb.Criteria.Add(string.Format("{0}=@url1", Homepage.Columns.Url1)); sb.AddDataParameter("@url1", Url1); } if (Url2 != String.Empty) { sb.Criteria.Add(string.Format("{0}=@url2", Homepage.Columns.Url2)); sb.AddDataParameter("@url2", Url2); } if (Url3 != String.Empty) { sb.Criteria.Add(string.Format("{0}=@url3", Homepage.Columns.Url3)); sb.AddDataParameter("@url3", Url3); } if (Url4 != String.Empty) { sb.Criteria.Add(string.Format("{0}=@url4", Homepage.Columns.Url4)); sb.AddDataParameter("@url4", Url4); } if (BumperPageHtml != String.Empty) { sb.Criteria.Add(string.Format("{0}=@bumperPageHtml", Homepage.Columns.BumperPageHtml)); sb.AddDataParameter("@bumperPageHtml", BumperPageHtml); } if (BumperPageSkip.HasValue) { sb.Criteria.Add(string.Format("{0}=@bumperPageSkip", Homepage.Columns.BumperPageSkip)); sb.AddDataParameter("@bumperPageSkip", SqlUtils.BitValue(BumperPageSkip.Value)); } if (CustomHtml != String.Empty) { sb.Criteria.Add(string.Format("{0}=@customHtml", Homepage.Columns.CustomHtml)); sb.AddDataParameter("@customHtml", CustomHtml); } if (HomepageTypeId != 0) { sb.Criteria.Add(string.Format("{0}=@homepageTypeId", Homepage.Columns.HomepageTypeId)); sb.AddDataParameter("@homepageTypeId", HomepageTypeId); } if (IsPublished.HasValue) { sb.Criteria.Add(string.Format("{0}=@isPublished", Homepage.Columns.IsPublished)); sb.AddDataParameter("@isPublished", SqlUtils.BitValue(IsPublished.Value)); } if (LastModifiedByUserId != 0) { sb.Criteria.Add(string.Format("{0}=@lastModifiedByUserId", Homepage.Columns.LastModifiedByUserId)); sb.AddDataParameter("@lastModifiedByUserId", LastModifiedByUserId); } if (LastModifiedDate != DateTime.MinValue) { sb.Criteria.Add(string.Format("{0}=@lastModifiedDate", Homepage.Columns.LastModifiedDate)); sb.AddDataParameter("@lastModifiedDate", LastModifiedDate); } if (BrandName != String.Empty) { sb.Criteria.Add("BrandName=@brandName"); sb.AddDataParameter("@brandName", BrandName); } SetCustomSearchCriteria(ref sb); }
protected void SetCustomSearchCriteria(ref SearchBuilder sb) { }
public async Task <(IEnumerable <Cl_ProductForList>, int)> GetProducts(FilterModel features_hash) { SearchParameters seacrhParameters = new SearchParameters(); string[] ListQuery; //Lấy danh sách sản phẩm (services) //Nếu có filter và search if (features_hash.filter != null) { ListQuery = features_hash.filter.Split('_'); foreach (var item in ListQuery) { string typeQuery = item.Split('-')[0]; string QueryData = item.Split('-')[1]; switch (typeQuery) { case "1": seacrhParameters.SearchTerm = QueryData; break; case "2": seacrhParameters.Company.Add(QueryData); break; case "3": seacrhParameters.PriceLow = int.Parse(QueryData); break; case "4": seacrhParameters.PriceHigh = int.Parse(QueryData); break; case "5": seacrhParameters.Weight.Add(float.Parse(QueryData)); break; case "6": switch (QueryData) { case "1": seacrhParameters.SortBy = SortCriteria.PriceHighToLow; break; case "2": seacrhParameters.SortBy = SortCriteria.PriceLowToHigh; break; default: seacrhParameters.SortBy = SortCriteria.Relevance; break; } break; default: break; } } var searchQuery = new SearchBuilder(). SetSearchTerm(seacrhParameters.SearchTerm). //1 SetCompany(seacrhParameters.Company). //2 SetPriceLow(seacrhParameters.PriceLow). //3 SetPriceHigh(seacrhParameters.PriceHigh). //4 SetWeight(seacrhParameters.Weight). SetSortBy(seacrhParameters.SortBy) //15 .BuildProducts(_db, features_hash); return(searchQuery.Item1, searchQuery.Item2); } //nếu không có filter và search mặc định sẽ chỉ phân trang và chỉ có thể sort else { var countProductsByCateId = _db.Products.Count(); var productsByCateId = _db.Products.Include(p => p.Category) .Select(p => new Cl_ProductForList { Id = p.Id, ProductName = p.ProductName, CategoryId = p.CategoryId, CategoryName = p.Category.CategoryName, Price = (int)p.Price, Company = p.Company, Weight = p.Weight, UrlSeo = p.UrlSeo, PhotoUrl = p.Photos.First().Url, }); var query = new SearchBuilder().BuildProducts(_db, features_hash); return(query.Item1, query.Item2); } }