/// Please read this links before reading code: /// http://www.jdconley.com/blog/archive/2007/11/28/linq-to-sql-surprise-performance-hit.aspx /// http://blog.linqexchange.com/index.php/how-to-use-compiled-queries-in-linq-to-sql-for-high-demand-asp-net-websites/ /// <summary> /// Main search function /// </summary> /// <param name="usi">Insert UserSearchInfo object</param> /// <param name="pagelimit">Insert resultlimit</param> /// <param name="pageindex">Insert index</param> /// <param name="langId">Insert langid for what langauge you want the result in</param> /// <param name="fromLastSeconds"></param> /// <returns>return SearchObject object</returns> private List <SearchObject> SearchMatchs(UserSearchInfo usi, int pagelimit, int pageindex, int langId, int fromLastSeconds) { Searchwar_netEntities db = new Searchwar_netEntities(); List <Guid> lastIds = new List <Guid>(); if (_context.Session["searchresult"] != null) { lastIds = (List <Guid>)_context.Session["searchresult"]; } SearchColumns parameters = new SearchColumns { Usi = usi, LangId = langId, PageIndex = pageindex, PageLimit = pagelimit, FromLastSeconds = fromLastSeconds, DateTimeNow = TimeZoneManager.DateTimeNow, LastIds = lastIds }; List <SearchObject> matchsFound = SearchResults(db, parameters).Skip(parameters.PageIndex == 0 ? (parameters.PageIndex * parameters.PageLimit) : 0).Take( parameters.PageLimit).ToList <SearchObject>(); return(matchsFound); }
public EntityFrameworkSystemConfigurationRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("Name"); SearchColumns.Add("Value"); DisplayColumnForCombobox = "Name"; }
/// <summary> /// Create search condition to get data in grid /// </summary> /// <param name="queryInfo"></param> /// <returns></returns> public virtual string SearchStringForGetData(IQueryInfo queryInfo) { var searchString = string.Empty; if (!string.IsNullOrEmpty(queryInfo.SearchString)) { var searchConditionList = new List <string>(); queryInfo.SearchString = queryInfo.SearchString.Replace(' ', '+'); queryInfo.SearchString = Encoding.UTF8.GetString(Convert.FromBase64String(queryInfo.SearchString)); queryInfo.ParseParameters(queryInfo.SearchString); if (!string.IsNullOrEmpty(queryInfo.SearchTerms)) { var keyword = queryInfo.SearchTerms; var searchCondition = new StringBuilder(); searchCondition.Append("("); searchCondition.Append(String.Join(" OR ", SearchColumns.Select(column => string.Format(" {0}.Contains(\"{1}\")", column, keyword)).ToArray())); searchCondition.Append(")"); searchConditionList.Add(searchCondition.ToString()); searchString = String.Join(" OR ", searchConditionList.ToArray <string>()); } } return(string.IsNullOrEmpty(searchString) ? " 1 = 1" : searchString); }
public EntityFrameworkHoldingRequestRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("LocationFrom"); SearchColumns.Add("LocationTo"); SearchColumns.Add("Description"); }
public EntityFrameworkRequestRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("RequestNo"); SearchColumns.Add("CourierSearch"); SearchColumns.Add("LocationFromName"); SearchColumns.Add("LocationToName"); }
public EntityFrameworkLocationRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("Name"); SearchColumns.Add("FullAddressSearch"); DisplayColumnForCombobox = "Name"; }
protected void HandleValidSubmitSearch() { string user_name = nameof(customSearch.user_name); SearchColumns.Remove(user_name); if (!customSearch.user_name.isNOEOW()) { SearchColumns.Add(user_name, customSearch.user_name); } OnSearch = true; }
public EntityFrameworkUserRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("UserName"); SearchColumns.Add("Role"); SearchColumns.Add("FullNameSearch"); SearchColumns.Add("HomePhone"); SearchColumns.Add("MobilePhone"); SearchColumns.Add("Email"); DisplayColumnForCombobox = "FirstName"; Includes.Add("UserRole"); }
private void UpdateUrl(int page) { bool isSearch = SearchColumns != null && SearchColumns.Count > 0; if (page == 1 && _NavigationManager.Uri.IndexOf("?") < 1 && !isSearch) { return; } string sortOrder = _UrlManager.GetQueryParm("sortOrder"); string sortBy = _UrlManager.GetQueryParm("sortby"); _UrlManager.Reset(); if (_UrlManager.Uri.isNOEOW()) { _UrlManager.Uri = PageName;// _UrlManager.GetNavigate(_NavigationManager.Uri); } //Console.WriteLine($"Cleaned URL => {_NavigationManager.Uri}"); //_UrlManager.RemoveParm("pageSize"); _UrlManager.AddQueryParm("page", page.ToString(), true); if ((!sortOrder.isNOEOW() && !sortBy.isNOEOW()) && new[] { "asc", "desc" }.Contains(sortOrder)) { _UrlManager.AddQueryParm("sortOrder", sortOrder); _UrlManager.AddQueryParm("sortby", sortBy); } if (isSearch && !isFirstRender && !_NavigationManager.Uri.isNOEOW()) { foreach (string k in SearchColumns) { if (k != "page" && k != "pageSize") { string v = SearchColumns[k]; if (k.isNOEOW() || v.isNOEOW()) { continue; } _UrlManager.AddQueryParm(k, v); v = null; } } } else if (SearchColumns != null) { SearchColumns.Clear(); } var uri = _UrlManager.GetNavigate(_NavigationManager.Uri); //var old = _UrlManager.GetNavigate(_NavigationManager.Uri); //Console.WriteLine($"Old => {_NavigationManager.Uri}"); //Console.WriteLine($"New => {uri}"); _NavigationManager.NavigateTo($"{uri}"); }
public static async System.Threading.Tasks.Task <SearchColumns> GetSearchColumnsFromTempworksAsync(int id) { using (HttpClient client = new HttpClient()) { // Call asynchronous network methods in a try/catch block to handle exceptions client.DefaultRequestHeaders.Add("x-tw-token", APIKey); var result = await client.GetAsync("https://api.ontempworks.com/Search/" + id.ToString() + "/Columns"); SearchColumns cols = await result.Content.ReadFromJsonAsync <SearchColumns>(); return(cols); } }
public async Task <IActionResult> GetAllSearchColumns() { using (SqlConnection con = new SqlConnection(ConnectionString)) { con.Open(); try { SearchColumns rets = await TempWorksAPI.GetSearchColumnsFromTempworksAsync(1); foreach (SearchColumn col in rets.data) { DataLayer.TempWorks.SetSearchColumProc(con, col); } rets = await TempWorksAPI.GetSearchColumnsFromTempworksAsync(2); foreach (SearchColumn col in rets.data) { DataLayer.TempWorks.SetSearchColumProc(con, col); } rets = await TempWorksAPI.GetSearchColumnsFromTempworksAsync(3); foreach (SearchColumn col in rets.data) { DataLayer.TempWorks.SetSearchColumProc(con, col); } rets = await TempWorksAPI.GetSearchColumnsFromTempworksAsync(8); foreach (SearchColumn col in rets.data) { DataLayer.TempWorks.SetSearchColumProc(con, col); } rets = await TempWorksAPI.GetSearchColumnsFromTempworksAsync(14); foreach (SearchColumn col in rets.data) { DataLayer.TempWorks.SetSearchColumProc(con, col); } } catch (Exception ex) { _context.SaveErrorProc(con, "Error in employees", ex.Message); return(BadRequest(ex.Message)); } } return(Ok("Success")); }
public EntityFrameworkFranchiseeTenantRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { var deploymentMode = ConfigurationManager.AppSettings["DeploymentMode"]; if (deploymentMode == "camino") { persistenceService.CreateWorkspace(new Tenant { Name = ConstantValue.ConnectionStringAdminDb }); } SearchColumns.Add("Name"); DisplayColumnForCombobox = "Name"; }
protected void LocationChanged(object sender, LocationChangedEventArgs e) { if (setStateChange && this.isNoQueryString()) { setStateChange = false; SearchColumns.Clear(); customSearch.user_name = null; StateHasChanged(); } else { setStateChange = true; } OnSearch = false; }
void LocationChanged(object sender, LocationChangedEventArgs e) { if (_NavigationManager.Uri.isNOEOW() || _NavigationManager.Uri.IndexOf("?") < 1 || PageName.IndexOf("&") < 1) { _UrlManager.Uri = e.Location; if (_UrlManager.GetQueryParm("page").isNOEOW()) { CurrentPage = 1; } SearchColumns.Clear(); } if (!PageName.isNOEOW() && _UrlManager.GetAbsolutePath(_NavigationManager.Uri) == _UrlManager.GetAbsolutePath(PageName)) { Task.Run(async() => await LoadData(e.Location)); } }
private void SetCollumns() { if (VisbleColumns.Count == 0) { ViewResult.FormatGrid(Query.Fields, ColumnsParameters); } else { var columns = Query.Fields.Where(p => VisbleColumns.Any(v => v == p.Name)); var col = new TableAdapterFieldCollection(); col.AddRange(columns); ViewResult.FormatGrid(col); } ViewResult.FocusedColumn = SearchColumns.IsEmpty() ? ViewResult.Columns[0] : ViewResult.Columns[SearchColumns.First().Name]; ViewResult.SetColors(); ViewResult.FormatConditions.Clear(); foreach (var item in Conditions) { var col = ViewResult.Columns[item.ColumnName]; if (col == null) { continue; } var scon = new DevExpress.XtraGrid.StyleFormatCondition( item.FormatConditionEnum, col, null, item.val1, item.val2, item.applyToRow); scon.Appearance.BackColor = item.BackColor; scon.Appearance.ForeColor = item.ForeColor; ViewResult.FormatConditions.Add(scon); } }
public EntityFrameworkTemplateRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("Title"); DisplayColumnForCombobox = "Title"; }
public EntityFrameworkCountryOrRegionRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("Name"); DisplayColumnForCombobox = "Name"; }
private void FillResult() { try { Cursor.Current = Cursors.WaitCursor; var query = new TableQuery(Query); if (!String.IsNullOrEmpty(SearchBy)) { var where = new WhereCollection(); foreach (var item in SearchColumns) { QueryParam param; if (item.DbTypeIsNumeric()) { int intConvert; if (!int.TryParse(SearchBy, out intConvert)) { continue; } param = new QueryParam(item, intConvert); } else { param = new QueryParam(item, eCondition.ecLike, SearchBy); } param.Relationship = eRelationship.erOr; where.Add(param); query.OrderBy.Add(new OrderBy(param)); } query.Wheres.Add(where); } var command = new SqlServerScriptWizard(query).GetSelectStatment(); grdResult.DataSource = Connection.Instance.SqlServerQuery(command.Item1, command.Item2); ViewResult.BestFitColumns(); ViewResult.ClearSorting(); if (!SearchColumns.IsEmpty()) { ViewResult.FocusedColumn = ViewResult.Columns[SearchColumns.First().Name]; ViewResult.FocusedColumn.SortOrder = DevExpress.Data.ColumnSortOrder.Ascending; if (Record != null) { var fieldValue = Record[ViewResult.FocusedColumn.FieldName].ToString(); ViewResult.StartIncrementalSearch(fieldValue); } } } finally { Cursor.Current = Cursors.Default; } }
/// <summary> /// Retrieves all the entities that match with the /// page request and query conditions specified /// and includes the column select collection /// during the selection /// </summary> /// <param name="pagination">Page request</param> /// <param name="columns">Column selection collection</param> /// <param name="conditions">Query conditions to apply</param> /// <returns>ComplexResponse of Paginated collection</returns> public async Task <ModelResponse <PaginatedCollection <T> > > GetRecords(Pagination pagination, string[] columns = null, List <QueryCondition <T> > conditions = null) { //Verify pagination instance if (pagination == null) { return(new ModelResponse <PaginatedCollection <T> >(false, @"The specified pagination instance is not valid.")); } //Initialize select columns if (columns.IsNotValid()) { columns = Columns; } //Verify integrity Columns (All the supplied columns must exists inside the current entity) if (!columns.ToList().TrueForAll(Columns.Contains)) { return(new ModelResponse <PaginatedCollection <T> >(false, @"The supplied columns does not exist in the current entity.")); } //Inicialize query conditions if (conditions.IsNotValid()) { conditions = new List <QueryCondition <T> >(); } else { //Validate query conditions integrity (All the supplied property-column query condition reference must exists inside the current entity) if (!conditions.Select(c => c.Property).ToList().TrueForAll(Columns.Contains)) { return(new ModelResponse <PaginatedCollection <T> >(false, @"The supplied columns does not exist in the current entity.")); } } ModelResponse <PaginatedCollection <T> > response; try { //Build count query using the given parameters StringBuilder sqlCount = new StringBuilder($@"Select Cast(count(*) as BigInt) as Total From [dbo].[{TableName}] "); //Conditions to apply to List <string> defaultConditions = new List <string>(); //Parameter list to pass List <SqlParameter> parameterList = new List <SqlParameter>(); //Include or not deleted records if (!pagination.IncludeAll) { defaultConditions.Add(@"[Deleted] Is Null"); } //Include keyword search inside searchable columns if (!pagination.KeyWords.IsNotValid() && !SearchColumns.IsNotValid()) { defaultConditions.Add($@"[{string.Join(@"] Like '%' + @SearchKeyWord + '%' Or [", SearchColumns)}] Like '%' + @SearchKeyWord + '%'"); parameterList.Add(new SqlParameter(@"@SearchKeyWord", pagination.KeyWords)); } //Include date range start if (!pagination.Start.IsNotValid()) { defaultConditions.Add(@"[Created] >= @StartAt"); parameterList.Add(new SqlParameter(@"@StartAt", pagination.Start)); } //Include date range end if (!pagination.End.IsNotValid()) { defaultConditions.Add(@"[Created] <= @EndAt"); parameterList.Add(new SqlParameter(@"@EntAt", pagination.End)); } //Adds any conditions if applies if (defaultConditions.Any()) { sqlCount.Append($@"Where ({string.Join(@") And (", defaultConditions)}) "); } //Command instance SqlServerCommand command = new SqlServerCommand(ConnectionString); //Get the user supplied conditions string userSqlConditions = conditions.ToSqlQuery(out SqlParameter[] userParameters); //Add the supplied user conditions if (!userSqlConditions.IsNotValid()) { //Add 'where' clausule if there is not any default condition if (!defaultConditions.Any()) { sqlCount.Append(@"Where "); } sqlCount .Append(@"And ") .Append(userSqlConditions); parameterList.AddRange(userParameters); } sqlCount.Append(@";"); //Params added SqlParameter[] parameters = parameterList.ToArray(); //Count results ModelResponse <List <ResultTable> > resultCount = await command.Query(sqlCount.ToString(), parameters); if (resultCount.Correct) { //Get the total records long total = resultCount.Model .First() .GetFirstResult <long>(@"Total"); //The sql select query result is succeded but it has not returned any record if (total.Equals(0)) { return(new ModelResponse <PaginatedCollection <T> >(false, @"The sql select query result is succeded but it has not returned any record.")); } //Calculate the pagination size by the given total records pagination.Calculate(total); //Sql select instance StringBuilder sqlSelect = new StringBuilder($@"Select [{string.Join(@"], [", columns)}] From [dbo].[{TableName}] "); //Apply the same conditions as the count sql if (defaultConditions.Any()) { sqlSelect.Append($@"Where ({string.Join(@") And (", defaultConditions)})"); } //Add the supplied user conditions if (!userSqlConditions.IsNotValid()) { //Add 'where' clausule if there is not any default condition if (!defaultConditions.Any()) { sqlSelect.Append(@"Where "); } sqlSelect .Append(@" And ") .Append(userSqlConditions); } //Skip and take records ordered by ascending id sqlSelect .Append($@"Order By [Id] Asc ") .Append($@"Offset {pagination.RequestedIndex * pagination.PageSize} Rows ") .Append($@"Fetch Next {pagination.PageSize} Rows Only;"); //Page result ModelResponse <List <ResultTable> > resultPage = await command.Query(sqlSelect.ToString(), parameters); if (resultPage.Correct) { //Create the page reference PaginatedCollection <T> page = new PaginatedCollection <T>(pagination, resultPage.Model.First().ToEntities <T>()); //Create response response = new ModelResponse <PaginatedCollection <T> >(page); } else { //The sql select query result is succeded but it has not returned any record response = new ModelResponse <PaginatedCollection <T> >(false, resultPage.Message); } } else { //The sql count query result is succeded but it has not returned any record response = new ModelResponse <PaginatedCollection <T> >(false, resultCount.Message); } } catch (Exception ex) { response = new ModelResponse <PaginatedCollection <T> >(ex); } return(response); }
protected override async Task OnInitializedAsync() { customSearch.user_name = SearchColumns.Get(nameof(customSearch.user_name)); await base.OnInitializedAsync(); }
public EntityFrameworkFranchiseeModuleRepository(ITenantPersistenceService persistenceService) : base(persistenceService) { SearchColumns.Add("Name"); DisplayColumnForCombobox = "Name"; }
public bool IsSearchable() { return(SearchColumns != null && SearchColumns.Any()); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); ClientResourceManager.RegisterScript(Page, "~/desktopmodules/activeforums/scripts/jquery-forumSelector.js"); try { if (Request.QueryString["GroupId"] != null && SimulateIsNumeric.IsNumeric(Request.QueryString["GroupId"])) { SocialGroupId = Convert.ToInt32(Request.QueryString["GroupId"]); } btnSearch.Click += btnSearch_Click; btnSearch2.Click += btnSearch_Click; if (Page.IsPostBack) { return; } // Bind the intial values for the forum // Options litInputError.Text = GetSharedResource("[RESX:SearchInputError]"); litOptions.Text = GetSharedResource("[RESX:SearchOptions]"); lblSearch.Text = GetSharedResource("[RESX:SearchKeywords]"); txtSearch.Text = SearchText; ListItem selectedItem = drpSearchColumns.Items.FindByValue(SearchColumns.ToString()); if (selectedItem != null) { selectedItem.Selected = true; } selectedItem = drpSearchType.Items.FindByValue(SearchType.ToString()); if (selectedItem != null) { selectedItem.Selected = true; } lblUserName.Text = GetSharedResource("[RESX:SearchByUser]"); txtUserName.Text = AuthorUsername; lblTags.Text = GetSharedResource("[RESX:SearchByTag]"); txtTags.Text = Tags; // Additional Options litAdditionalOptions.Text = GetSharedResource("[RESX:SearchOptionsAdditional]"); lblForums.Text = GetSharedResource("[RESX:SearchInForums]"); BindForumList(); lblSearchDays.Text = GetSharedResource("[RESX:SearchTimeFrame]"); BindSearchRange(); lblResultType.Text = GetSharedResource("[RESX:SearchResultType]"); selectedItem = drpResultType.Items.FindByValue(ResultType.ToString()); if (selectedItem != null) { selectedItem.Selected = true; } lblSortType.Text = GetSharedResource("[RESX:SearchSort]"); selectedItem = drpSort.Items.FindByValue(Sort.ToString()); if (selectedItem != null) { selectedItem.Selected = true; } // Buttons btnSearch.Text = GetSharedResource("[RESX:Search]"); btnSearch2.Text = GetSharedResource("[RESX:Search]"); btnReset.InnerText = GetSharedResource("[RESX:Reset]"); btnReset2.InnerText = GetSharedResource("[RESX:Reset]"); // Update Meta Data var basePage = BasePage; Environment.UpdateMeta(ref basePage, "[VALUE] - " + GetSharedResource("[RESX:SearchAdvanced]"), "[VALUE]", "[VALUE]"); } catch (Exception ex) { Controls.Clear(); RenderMessage("[RESX:ERROR]", "[RESX:ERROR:Search]", ex.Message, ex); } }
protected override async Task OnInitializedAsync() { //_header.setTitle("Menu data"); customSearch.user_name = SearchColumns.Get(nameof(customSearch.user_name)); await base.OnInitializedAsync(); }
protected override void HighlightSearchText(Graphics paint, DataColumnBase column, CellStyleInfo style, Rectangle bounds, string cellValue, RowColumnIndex rowColumnIndex) { if (AllowHighlightSearchText && !string.IsNullOrEmpty(SearchText)) { if (column != null && (SearchColumns.Count > 0 && !SearchColumns.Contains(column.GridColumn.MappingName))) { return; } var searchText = SearchText; string[] metaCharacters = { "\\", "^", "$", "{", "}", "[", "]", "(", ")", ".", "*", "+", "?", "|", "<", ">", "-", "&" }; if (metaCharacters.Any(searchText.Contains)) { for (int i = 0; i < metaCharacters.Length; i++) { if (searchText.Contains(metaCharacters[i])) { searchText = searchText.Replace(metaCharacters[i], @"\" + metaCharacters[i]); } } } searchText = "^(" + searchText + ")$"; //Gets the list of indexes that match with the search text. List <int> matchList = Regex.Matches(cellValue, searchText, this.AllowCaseSensitiveSearch ? RegexOptions.None : RegexOptions.IgnoreCase) .Cast <Match>() .Select(s => s.Index).ToList(); if (matchList.Count > 0 && bounds.Width > 0) { StringFormat format = new StringFormat(StringFormat.GenericDefault); List <CharacterRange[]> characterRangeList = new List <CharacterRange[]>(); //Used 32 as CharacterRangeLength to avoid System.OverFlowExcepion //in StringFormat.SetMeasurableCharacterRanges which occurs if the CharacterRange length is more than 32. int characterRangeLength = 32; int count = matchList.Count / characterRangeLength; int range = matchList.Count % characterRangeLength; int startIndex = 0; if (count > 0) { for (int index = 0; index < count; index++) { CharacterRange[] characterRange = new CharacterRange[characterRangeLength]; for (int i = 0; i < characterRangeLength; i++) { characterRange[i] = new CharacterRange(matchList[startIndex], SearchText.Length); startIndex++; } characterRangeList.Add(characterRange); characterRange = null; } } if (range > 0) { CharacterRange[] characterRange = new CharacterRange[range]; for (int i = 0; i < range; i++) { characterRange[i] = new CharacterRange(matchList[startIndex], SearchText.Length); startIndex++; } characterRangeList.Add(characterRange); characterRange = null; } //VerticalAlignment format.LineAlignment = ConvertToStringAlignment(style.VerticalAlignment); //HorizontalAlignment format.Alignment = ConvertToStringAlignment(style.HorizontalAlignment); if (!column.GridColumn.AllowTextWrapping) { format.FormatFlags = StringFormatFlags.NoWrap; format.Trimming = column.GridColumn.TextTrimming; } if (DataGrid.RightToLeft == RightToLeft.Yes) { format.FormatFlags = StringFormatFlags.DirectionRightToLeft; } foreach (var characterRange in characterRangeList) { //Set the range of characters to be measured. format.SetMeasurableCharacterRanges(characterRange); //Gets the regions of the measurable characters applied to the string format for the given text with in the text bounds. Region[] regions = paint.MeasureCharacterRanges(cellValue, style.GetFont(), bounds, format); RectangleF[] fillRectangle = new RectangleF[regions.Length]; for (int i = 0; i < regions.Length; i++) { fillRectangle[i] = regions[i].GetBounds(paint); } var highlightColor = SearchColor; if (this.CurrentRowColumnIndex == rowColumnIndex) { highlightColor = SearchHighlightColor; } // Highlights the search text based on the using (Brush brush = new SolidBrush(highlightColor)) paint.FillRectangles(brush, fillRectangle); } characterRangeList.Clear(); characterRangeList = null; matchList.Clear(); matchList = null; } } }