private QuerySortType GetListSortTypeId(string name) { QuerySortType type = QuerySortType.Ascending; Enum.TryParse(name, true, out type); return(type); }
public IActionResult OnGet() { var initResult = Init(); if (initResult != null) { return(initResult); } #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; //var appServ = new AppService(); //var apps = appServ.GetAllApplications(); //TotalCount = apps.Count; //ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); #endregion #region << Create Columns >> Columns = new List <WvGridColumnMeta>() { new WvGridColumnMeta() { Name = "action", Width = "1%" }, new WvGridColumnMeta() { Label = "name", Name = "name", Width = "200px" }, new WvGridColumnMeta() { Label = "description", Name = "description" } }; #endregion #region << Records >> var eql = " SELECT * FROM role "; List <EqlParameter> eqlParams = new List <EqlParameter>(); Records = new EqlCommand(eql, eqlParams).Execute(); TotalCount = Records.TotalCount; #endregion BeforeRender(); return(Page()); }
public void InitPageData() { #region << InitPage >> HeaderToolbar.AddRange(AdminPageUtils.GetJobAdminSubNav("job")); int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; #endregion #region << Create Columns >> Columns = new List <WvGridColumnMeta>() { new WvGridColumnMeta() { Name = "action", Width = "1%" }, new WvGridColumnMeta() { Label = "created on", Name = "created_on", Width = "150px" }, new WvGridColumnMeta() { Label = "started on", Name = "started_on", Width = "150px" }, new WvGridColumnMeta() { Label = "finished on", Name = "finished_on", Width = "150px" }, new WvGridColumnMeta() { Label = "type name", Name = "type_name", }, new WvGridColumnMeta() { Label = "complete class name", Name = "complete_class_name", Width = "400px" }, new WvGridColumnMeta() { Label = "status", Name = "status", Width = "100px" } }; #endregion #region << Records >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); string typeName = null; Guid? typeId = null; if (submittedFilters.Count > 0) { var whereClauseList = new List <string>(); foreach (var filter in submittedFilters) { switch (filter.Name) { case "type_name": typeName = filter.Value; break; case "type_id": if (Guid.TryParse(filter.Value, out Guid outGuid)) { typeId = outGuid; } break; } } } int totalCount; Records = JobManager.Current.GetJobs(out totalCount, null, null, null, null, typeName, null, null, typeId, Pager, PagerSize); TotalCount = totalCount; #endregion }
public void OnGet() { Init(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "1%" }, new GridColumn() { Label = "email", Name = "email", Sortable = true, Width = "120px" }, new GridColumn() { Label = "username", Name = "username", Sortable = true }, new GridColumn() { Label = "role", Name = "role", Sortable = false } }; #endregion #region << Records >> var eql = " SELECT id,email,username,$user_role.name FROM user "; List <EqlParameter> eqlParams = new List <EqlParameter>(); //Apply sort if (!String.IsNullOrWhiteSpace(SortBy) && (new List <string>() { "email", "username" }).Contains(SortBy)) { eqlParams.Add(new EqlParameter("@sortBy", SortBy)); if (SortOrder == QuerySortType.Descending) { eqlParams.Add(new EqlParameter("@sortOrder", "Desc")); } else { eqlParams.Add(new EqlParameter("@sortOrder", "Asc")); } eql += " ORDER BY @sortBy @sortOrder "; } else { eql += " ORDER BY email Asc "; } eql += " PAGE @page "; eql += " PAGESIZE @pageSize "; eqlParams.Add(new EqlParameter("@page", Pager)); eqlParams.Add(new EqlParameter("@pageSize", PagerSize)); Records = new EqlCommand(eql, eqlParams).Execute(); TotalCount = Records.TotalCount; #endregion BeforeRender(); }
public IActionResult OnGet() { var initResult = Init(); if (initResult != null) { return(initResult); } var entMan = new EntityManager(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; var allEntities = entMan.ReadEntities().Object; #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": if (filter.Type == FilterType.CONTAINS) { allEntities = allEntities.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; } } } #endregion allEntities = allEntities.OrderBy(x => x.Name).ToList(); TotalCount = allEntities.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); var searchKey = "q_name_v"; if (HttpContext.Request.Query.ContainsKey(searchKey) && !String.IsNullOrWhiteSpace(HttpContext.Request.Query[searchKey])) { SearchString = (string)HttpContext.Request.Query[searchKey]; } #endregion #region << Create Columns >> Columns = new List <WvGridColumnMeta>() { new WvGridColumnMeta() { Name = "action", Width = "1%" }, new WvGridColumnMeta() { Label = "Icon", Name = "icon", Width = "1%" }, new WvGridColumnMeta() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new WvGridColumnMeta() { Label = "# fields", Name = "fields", Width = "80px" } }; #endregion #region << Records >> //Apply sort if (!String.IsNullOrWhiteSpace(SortBy)) { switch (SortBy) { case "name": if (SortOrder == QuerySortType.Descending) { allEntities = allEntities.OrderByDescending(x => x.Name).ToList(); } else { allEntities = allEntities.OrderBy(x => x.Name).ToList(); } break; default: break; } } //Apply pager var skipPages = (Pager - 1) * PagerSize; allEntities = allEntities.Skip(skipPages).Take(PagerSize).ToList(); foreach (var entity in allEntities) { var record = new EntityRecord(); record["action"] = $"<a class='btn btn-sm btn-outline-secondary' title='Entity details' href='/sdk/objects/entity/r/{entity.Id}?returnUrl={ReturnUrlEncoded}'><span class='fa fa-eye'></span></a>"; record["icon"] = $"<div class='badge badge-pill' style='font-size:18px;color:{(String.IsNullOrWhiteSpace(entity.Color) ? "#999999" : entity.Color)};'><span class='{entity.IconName}'></span></div>"; record["name"] = entity.Name; record["fields"] = entity.Fields.Count.ToString(); Records.Add(record); } #endregion #region << Actions >> HeaderActions.AddRange(new List <string>() { $"<a href='/sdk/objects/entity/c?returnUrl={ReturnUrlEncoded}' class='btn btn-white btn-sm'><span class='fa fa-plus go-green'></span> Create Entity</a>" }); #endregion ErpRequestContext.PageContext = PageContext; BeforeRender(); return(Page()); }
public IActionResult OnGet() { var initResult = Init(); if (initResult != null) { return(initResult); } #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; #endregion #region << Create Columns >> Columns = new List <WvGridColumnMeta>() { new WvGridColumnMeta() { Name = "action", Width = "1%" }, new WvGridColumnMeta() { Label = "date", Name = "Date", Width = "150px" }, new WvGridColumnMeta() { Label = "type", Name = "Type", Width = "40px" }, new WvGridColumnMeta() { Label = "source", Name = "Source" }, new WvGridColumnMeta() { Label = "message", Name = "Message" }, new WvGridColumnMeta() { Label = "status", Name = "Status", Width = "40px" }, }; #endregion #region << Records >> string querySource = null; string queryMessage = null; var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { var whereClauseList = new List <string>(); foreach (var filter in submittedFilters) { switch (filter.Name) { case "source": querySource = filter.Value; break; case "message": queryMessage = filter.Value; break; } } } Records = new Diagnostics.Log().GetLogs(Pager, PagerSize, querySource, queryMessage); TotalCount = Records.TotalCount; #endregion BeforeRender(); return(Page()); }
public IActionResult OnGet() { Init(); var entMan = new EntityManager(); var recMan = new RecordManager(); #region << InitPage >> int pager = 1; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; ErpEntity = entMan.ReadEntity(ParentRecordId ?? Guid.Empty).Object; if (ErpEntity == null) { return(NotFound()); } ReadAccess = SecurityContext.HasEntityPermission(EntityPermission.Read, ErpEntity); CreateAccess = SecurityContext.HasEntityPermission(EntityPermission.Create, ErpEntity); UpdateAccess = SecurityContext.HasEntityPermission(EntityPermission.Update, ErpEntity); DeleteAccess = SecurityContext.HasEntityPermission(EntityPermission.Delete, ErpEntity); if (string.IsNullOrWhiteSpace(ReturnUrl)) { ReturnUrl = $"/sdk/objects/entity/r/{ErpEntity.Id}/"; } Fields = ErpEntity.Fields.OrderBy(x => x.Name).ToList(); var idField = Fields.Single(x => x.Name == "id"); Fields.Remove(idField); Fields = Fields.OrderBy(x => x.Name).ToList(); Fields.Insert(0, idField); List <QueryObject> filterQueries = new List <QueryObject>(); #region << Process filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { if (!ErpEntity.Fields.Any(x => x.Name == filter.Name)) { continue; } switch (filter.Type) { case FilterType.EQ: filterQueries.Add(EntityQuery.QueryEQ(filter.Name, filter.Value)); break; case FilterType.CONTAINS: filterQueries.Add(EntityQuery.QueryContains(filter.Name, filter.Value)); break; case FilterType.FTS: filterQueries.Add(EntityQuery.QueryFTS(filter.Name, filter.Value)); break; case FilterType.STARTSWITH: filterQueries.Add(EntityQuery.QueryStartsWith(filter.Name, filter.Value)); break; case FilterType.REGEX: filterQueries.Add(EntityQuery.QueryRegex(filter.Name, filter.Value)); break; } } } #endregion #region << Process Sort >> var sort = new List <QuerySortObject> { new QuerySortObject("id", QuerySortType.Ascending) }; if (!String.IsNullOrWhiteSpace(SortBy) && Fields.Any(x => x.Name == SortBy)) { sort = new List <QuerySortObject> { new QuerySortObject(SortBy, SortOrder == QuerySortType.Ascending ? QuerySortType.Ascending : QuerySortType.Descending) } } ; #endregion if (!ReadAccess) { Records = new List <EntityRecord>(); TotalCount = 0; Validation.Message = "You have no permissions to view records."; Validation.Errors.Add(new ValidationError("", "You have no permissions to view records.")); } else { EntityQuery enQuery = null; if (filterQueries.Any()) { enQuery = new EntityQuery(ErpEntity.Name, query: EntityQuery.QueryAND(filterQueries.ToArray()), sort: sort.ToArray(), skip: (pager - 1) * PagerSize, limit: PagerSize); } else { enQuery = new EntityQuery(ErpEntity.Name, sort: sort.ToArray(), skip: (pager - 1) * PagerSize, limit: PagerSize); } var queryResponse = recMan.Find(enQuery); if (!queryResponse.Success) { throw new Exception(queryResponse.Message); } Records = queryResponse.Object.Data; TotalCount = (int)recMan.Count(enQuery).Object; } ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); HeaderToolbar.AddRange(AdminPageUtils.GetEntityAdminSubNav(ErpEntity, "data")); #endregion #region << Create Columns >> Columns.Add(new GridColumn() { Name = "", Label = "", Width = "90px", Sortable = false, Searchable = false }); foreach (var field in Fields) { var fieldAccess = GetFieldAccess(field); var searchAndSortAvailable = field.Searchable && (fieldAccess == FieldAccess.Full || fieldAccess == FieldAccess.ReadOnly); var column = new GridColumn() { Name = field.Name, Label = field.Label, Sortable = searchAndSortAvailable, Searchable = searchAndSortAvailable }; if (field.GetFieldType() == FieldType.GuidField) { column.Width = "1%"; } Columns.Add(column); } #endregion #region << Filters >> foreach (var field in Fields) { //remove fields with no access from search var fieldAccess = GetFieldAccess(field); var searchable = field.Searchable && (fieldAccess == FieldAccess.Full || fieldAccess == FieldAccess.ReadOnly); if (!searchable) { continue; } if (field.Name == "id") { dynamic filterObj = new ExpandoObject(); filterObj.Name = field.Name; filterObj.Label = field.Label; filterObj.Type = FilterType.EQ; filterObj.AllowedTypes = new List <FilterType> { FilterType.EQ }; Filters.Add(filterObj); } else if (field.Searchable) { dynamic filterObj = new ExpandoObject(); filterObj.Name = field.Name; filterObj.Label = field.Label; filterObj.Type = FilterType.EQ; filterObj.AllowedTypes = new List <FilterType> { FilterType.EQ, FilterType.NOT }; var fieldType = field.GetFieldType(); if (fieldType == FieldType.TextField || fieldType == FieldType.MultiLineTextField || fieldType == FieldType.UrlField || fieldType == FieldType.EmailField || fieldType == FieldType.HtmlField || fieldType == FieldType.SelectField || fieldType == FieldType.MultiSelectField) { filterObj.AllowedTypes.Add(FilterType.REGEX); filterObj.AllowedTypes.Add(FilterType.FTS); filterObj.AllowedTypes.Add(FilterType.STARTSWITH); filterObj.AllowedTypes.Add(FilterType.CONTAINS); } Filters.Add(filterObj); } } #endregion return(Page()); }
public QuerySortObject( string fieldName, QuerySortType sortType ) { FieldName = fieldName; SortType = sortType; }
public QuerySortObject(string fieldName, QuerySortType sortType) { FieldName = fieldName; SortType = sortType; }
public void OnGet() { Init(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; var appServ = new AppService(); var apps = appServ.GetAllApplications().OrderBy(x => x.Name).ToList(); #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": if (filter.Type == FilterType.CONTAINS) { apps = apps.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; } } } #endregion TotalCount = apps.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "1%" }, new GridColumn() { Label = "Icon", Name = "icon", Width = "1%" }, new GridColumn() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new GridColumn() { Label = "Label", Name = "label", Sortable = true, Searchable = true }, new GridColumn() { Label = "Description", Name = "description" } }; #endregion #region << Records >> //Apply sort if (!String.IsNullOrWhiteSpace(SortBy)) { switch (SortBy) { case "name": if (SortOrder == QuerySortType.Descending) { apps = apps.OrderByDescending(x => x.Name).ToList(); } else { apps = apps.OrderBy(x => x.Name).ToList(); } break; case "label": if (SortOrder == QuerySortType.Descending) { apps = apps.OrderByDescending(x => x.Label).ToList(); } else { apps = apps.OrderBy(x => x.Label).ToList(); } break; default: break; } } //Apply pager var skipPages = (Pager - 1) * PagerSize; apps = apps.Skip(skipPages).Take(PagerSize).ToList(); foreach (var app in apps) { var record = new EntityRecord(); record["action"] = $"<a class='btn btn-sm btn-white' title='App details' href='/sdk/objects/application/r/{app.Id}?returnUrl={ReturnUrlEncoded}'><span class='ti-eye'></span></a>"; record["name"] = app.Name; record["label"] = app.Label; record["icon"] = $"<div class='badge badge-pill' style='font-size:18px;color:{app.Color};'><span class='{app.IconClass}'></span></div>"; record["description"] = app.Description; Records.Add(record); } #endregion ErpRequestContext.PageContext = PageContext; }
public IActionResult OnGet() { Init(); var entMan = new EntityManager(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; ErpEntity = entMan.ReadEntity(ParentRecordId ?? Guid.Empty).Object; if (ErpEntity == null) { return(NotFound()); } if (String.IsNullOrWhiteSpace(ReturnUrl)) { ReturnUrl = $"/sdk/objects/entity/r/{ErpEntity.Id}/"; } var allFields = ErpEntity.Fields; #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": if (filter.Type == FilterType.CONTAINS) { allFields = allFields.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; } } } #endregion allFields = allFields.OrderBy(x => x.Name).ToList(); TotalCount = allFields.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "1%" }, new GridColumn() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new GridColumn() { Label = "Type", Name = "type", Width = "120px" }, new GridColumn() { Label = "System", Name = "system", Width = "1%" }, new GridColumn() { Label = "Required", Name = "required", Width = "1%" }, new GridColumn() { Label = "Unique", Name = "unique", Width = "80px" }, new GridColumn() { Label = "Searchable", Name = "searchable", Width = "1%" }, }; #endregion #region << Records >> //Apply sort if (!String.IsNullOrWhiteSpace(SortBy)) { switch (SortBy) { case "name": if (SortOrder == QuerySortType.Descending) { allFields = allFields.OrderByDescending(x => x.Name).ToList(); } else { allFields = allFields.OrderBy(x => x.Name).ToList(); } break; default: break; } } //Apply pager var skipPages = (Pager - 1) * PagerSize; allFields = allFields.Skip(skipPages).Take(PagerSize).ToList(); foreach (var field in allFields) { var record = new EntityRecord(); record["action"] = $"<a class='btn btn-sm btn-white' title='App details' href='/sdk/objects/entity/r/{ErpEntity.Id}/rl/fields/r/{field.Id}?returnUrl={ReturnUrlEncoded}'><span class='ti-eye'></span></a>"; record["name"] = field.Name; record["type"] = field.GetFieldType().ToString(); record["system"] = field.System; record["required"] = field.Required; record["unique"] = field.Unique; record["searchable"] = field.Searchable; Records.Add(record); } #endregion #region << Actions >> HeaderActions.AddRange(new List <string>() { $"<a href='/sdk/objects/entity/r/{(ErpEntity != null ? ErpEntity.Id : Guid.Empty)}/rl/fields/c/select?returnUrl={ReturnUrlEncoded}' class='btn btn-white btn-sm'><span class='fa fa-plus go-green'></span> Create Field</a>", $"<button type='button' onclick='ErpEvent.DISPATCH(\"WebVella.Erp.Web.Components.PcDrawer\",\"open\")' class='btn btn-white btn-sm'><span class='fa fa-search'></span> Search</a>" }); HeaderToolbar.AddRange(AdminPageUtils.GetEntityAdminSubNav(ErpEntity, "fields")); #endregion ErpRequestContext.PageContext = PageContext; return(Page()); }
public IActionResult OnGet() { var initResult = Init(); if (initResult != null) { return(initResult); } #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; ErpEntity = new EntityManager().ReadEntity(ParentRecordId ?? Guid.Empty).Object; if (ErpEntity == null) { return(NotFound()); } if (String.IsNullOrWhiteSpace(ReturnUrl)) { ReturnUrl = $"/sdk/objects/entity/r/{ErpEntity.Id}/"; } var pageSer = new PageService(); var entMan = new EntityManager(); var appServ = new AppService(); var pages = pageSer.GetAll(); var entities = entMan.ReadEntities().Object; var apps = appServ.GetAllApplications(); #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); foreach (var filter in submittedFilters) { switch (filter.Name) { default: case "label": if (filter.Type == FilterType.CONTAINS) { pages = pages.FindAll(x => x.Label.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; case "name": if (filter.Type == FilterType.CONTAINS) { pages = pages.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; case "app": if (filter.Type == FilterType.EQ) { var app = apps.FirstOrDefault(x => x.Name.ToLowerInvariant() == filter.Value.ToLowerInvariant()); if (app != null) { pages = pages.FindAll(x => x.AppId == app.Id).ToList(); } else { pages = new List <ErpPage>(); } } break; case "entity": if (filter.Type == FilterType.EQ) { var entity = entities.FirstOrDefault(x => x.Name.ToLowerInvariant() == filter.Value.ToLowerInvariant()); if (entity != null) { pages = pages.FindAll(x => x.EntityId == entity.Id).ToList(); } else { pages = new List <ErpPage>(); } } break; case "type": if (filter.Type == FilterType.CONTAINS) { foreach (var typeEnum in Enum.GetValues(typeof(PageType)).Cast <PageType>()) { var enumDescription = typeEnum.GetLabel(); if (!enumDescription.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())) { pages = pages.FindAll(x => x.Type != typeEnum).ToList(); } } //pages = pages.FindAll(x => x.Type == entity.Id).ToList(); } break; case "system": if (filter.Type == FilterType.EQ) { if (filter.Value == "true") { pages = pages.FindAll(x => x.System).ToList(); } else if (filter.Value == "false") { pages = pages.FindAll(x => !x.System).ToList(); } } break; case "customized": if (filter.Type == FilterType.EQ) { if (filter.Value == "true") { pages = pages.FindAll(x => x.IsRazorBody).ToList(); } else if (filter.Value == "false") { pages = pages.FindAll(x => !x.IsRazorBody).ToList(); } } break; } } #endregion TotalCount = pages.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageContext.HttpContext.Request.Path + PageContext.HttpContext.Request.QueryString); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); HeaderToolbar.AddRange(AdminPageUtils.GetEntityAdminSubNav(ErpEntity, "pages")); #endregion #region << Create Columns >> Columns = new List <WvGridColumnMeta>() { new WvGridColumnMeta() { Name = "action", Width = "1%" }, new WvGridColumnMeta() { Label = "Label", Name = "label", Sortable = true, Searchable = true }, new WvGridColumnMeta() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new WvGridColumnMeta() { Label = "App", Name = "app", Width = "140px" }, new WvGridColumnMeta() { Label = "Entity", Name = "entity", Width = "140px" }, new WvGridColumnMeta() { Label = "Type", Name = "type", Sortable = true, Width = "120px" }, new WvGridColumnMeta() { Label = "system", Name = "system", Sortable = true, Width = "80px" }, new WvGridColumnMeta() { Label = "Customized", Name = "customized", Sortable = true, Width = "80px" } }; #endregion #region << Records >> pages = pages.FindAll(x => x.EntityId == ErpEntity.Id).ToList(); switch (SortBy) { default: case "label": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Label).ToList(); } else { pages = pages.OrderBy(x => x.Label).ToList(); } break; case "name": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Name).ToList(); } else { pages = pages.OrderBy(x => x.Name).ToList(); } break; case "type": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Type).ToList(); } else { pages = pages.OrderBy(x => x.Type).ToList(); } break; case "system": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.System).ToList(); } else { pages = pages.OrderBy(x => x.System).ToList(); } break; case "customized": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.IsRazorBody).ToList(); } else { pages = pages.OrderBy(x => x.IsRazorBody).ToList(); } break; } //Apply pager var skipPages = (Pager - 1) * PagerSize; pages = pages.Skip(skipPages).Take(PagerSize).ToList(); foreach (var page in pages) { var record = new EntityRecord(); record["action"] = $"<a class='btn btn-sm btn-outline-secondary' target='_blank' href='/sdk/objects/page/r/{page.Id}'><span class='fa fa-eye'></span></a>"; record["label"] = page.Label; record["name"] = page.Name; record["app"] = page.AppId != null?apps.First(x => x.Id == page.AppId).Name : ""; record["entity"] = page.EntityId != null?entities.First(x => x.Id == page.EntityId).Name : "";; record["type"] = $"{page.Type.GetLabel()}"; record["system"] = page.System; record["customized"] = page.IsRazorBody; Records.Add(record); } #endregion BeforeRender(); return(Page()); }
public void OnGet() { Init(); DataSourceManager dsMan = new DataSourceManager(); int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Page = pager; SortBy = sortBy; SortOrder = sortOrder; ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); var allDataSources = dsMan.GetAll().OrderBy(x => x.Name).ToList(); foreach (var ds in allDataSources) { if (ds is DatabaseDataSource) { var record = new EntityRecord(); var recordId = ds.Id; record["action"] = $"<a class='btn btn-sm btn-outline-secondary' title='Data source details' href='/sdk/objects/data_source/r/{recordId}?returnUrl={ReturnUrlEncoded}'><span class='fa fa-eye'></span></a>"; record["icon"] = PageUtils.GetDataSourceIconBadge(DataSourceType.DATABASE); record["name"] = ds.Name; record["target"] = ds.EntityName; record["type_description"] = DataSourceType.DATABASE.GetLabel(); record["type"] = DataSourceType.DATABASE; record["model"] = ds.ResultModel; record["param_count"] = ds.Parameters.Count; Records.Add(record); } else { var record = new EntityRecord(); var recordId = ds.Id; record["action"] = $"<a class='btn btn-sm btn-outline-secondary' title='Data source details' href='/sdk/objects/data_source/r/{recordId}?returnUrl={ReturnUrlEncoded}'><span class='fa fa-eye'></span></a>"; record["icon"] = PageUtils.GetDataSourceIconBadge(DataSourceType.CODE); record["name"] = ds.Name; record["target"] = ds.GetType().FullName; record["type_description"] = DataSourceType.CODE.GetLabel(); record["type"] = DataSourceType.CODE; record["model"] = ds.ResultModel; record["param_count"] = 0; Records.Add(record); } } TotalCount = Records.Count; PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); #region << Filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": Records = Records.FindAll(x => x["name"].ToString().ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); break; case "model": Records = Records.FindAll(x => x["model"].ToString().ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); break; case "target": Records = Records.FindAll(x => x["target"].ToString().ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); break; case "type": Records = Records.FindAll(x => ((int)x["type"]).ToString().Equals(filter.Value)).ToList(); break; } } } #endregion #region << Sort >> if (!String.IsNullOrWhiteSpace(SortBy)) { switch (SortBy) { case "name": if (SortOrder == QuerySortType.Descending) { Records = Records.OrderByDescending(x => x["name"].ToString()).ToList(); } else { Records = Records.OrderBy(x => x["name"].ToString()).ToList(); } break; case "type": if (SortOrder == QuerySortType.Descending) { Records = Records.OrderByDescending(x => x["type"].ToString()).ToList(); } else { Records = Records.OrderBy(x => x["type"].ToString()).ToList(); } break; case "target": if (SortOrder == QuerySortType.Descending) { Records = Records.OrderByDescending(x => x["target"].ToString()).ToList(); } else { Records = Records.OrderBy(x => x["target"].ToString()).ToList(); } break; default: break; } } #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Label = "", Name = "action", Width = "1%" }, new GridColumn() { Label = "Icon", Name = "icon", Width = "1%" }, new GridColumn() { Label = "Name", Name = "name", Width = "220px", Sortable = true }, new GridColumn() { Label = "Type", Name = "type", Width = "120px", Sortable = true }, new GridColumn() { Label = "target", Name = "Target", Sortable = true }, new GridColumn() { Label = "Returned Model", Name = "model", Width = "220px" }, new GridColumn() { Label = "Params", Name = "param_count", Width = "40px" }, }; #endregion #region << Actions >> HeaderActions.AddRange(new List <string>() { $"<a href='/sdk/objects/data_source/c/create?returnUrl={ReturnUrlEncoded}' class='btn btn-white btn-sm'><span class='fa fa-plus go-green'></span> Add Data Source</a>", $"<button type='button' onclick='ErpEvent.DISPATCH(\"WebVella.Erp.Web.Components.PcDrawer\",\"open\")' class='btn btn-white btn-sm'><span class='fa fa-search'></span> Search</a>" }); #endregion var skipPages = (Page - 1) * PageSize; Records = Records.Skip(skipPages).Take(PageSize).ToList(); ErpRequestContext.PageContext = PageContext; BeforeRender(); }
public IActionResult OnGet() { Init(); var entMan = new EntityManager(); var relMan = new EntityRelationManager(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; ErpEntity = entMan.ReadEntity(ParentRecordId ?? Guid.Empty).Object; if (ErpEntity == null) { return(NotFound()); } if (string.IsNullOrWhiteSpace(ReturnUrl)) { ReturnUrl = $"/sdk/objects/entity/r/{ErpEntity.Id}/"; } var entityRelations = relMan.Read().Object.Where(x => x.TargetEntityId == ErpEntity.Id || x.OriginEntityId == ErpEntity.Id).ToList(); #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": if (filter.Type == FilterType.CONTAINS) { entityRelations = entityRelations.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; } } } #endregion entityRelations = entityRelations.OrderBy(x => x.Name).ToList(); TotalCount = entityRelations.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageUtils.GetCurrentUrl(PageContext.HttpContext)); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "1%" }, new GridColumn() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new GridColumn() { Label = "Origin", Name = "origin", Sortable = false, Searchable = false, Width = "25%" }, new GridColumn() { Label = "Target", Name = "target", Sortable = false, Searchable = false, Width = "25%", }, }; #endregion #region << Records >> //Apply sort if (!String.IsNullOrWhiteSpace(SortBy)) { switch (SortBy) { case "name": if (SortOrder == QuerySortType.Descending) { entityRelations = entityRelations.OrderByDescending(x => x.Name).ToList(); } else { entityRelations = entityRelations.OrderBy(x => x.Name).ToList(); } break; default: break; } } //Apply pager var skipPages = (Pager - 1) * PagerSize; entityRelations = entityRelations.Skip(skipPages).Take(PagerSize).ToList(); const string OneToOne = " <span class='badge badge-primary badge-inverse' title='One to One' style='margin-left:5px;'>1 : 1</span>"; const string OneToMany = " <span class='badge badge-primary badge-inverse' title='One to Many' style='margin-left:5px;'>1 : N</span>"; const string ManyToMany = " <span class='badge badge-primary badge-inverse' title='Many to Many' style='margin-left:5px;'>N : N</span>"; foreach (var relation in entityRelations) { var nameColumnText = relation.Name + (relation.System ? " <i class='fa fa-fw fa-lock'></i>" : ""); switch (relation.RelationType) { case EntityRelationType.OneToOne: nameColumnText = nameColumnText + OneToOne; break; case EntityRelationType.OneToMany: nameColumnText = nameColumnText + OneToMany; break; case EntityRelationType.ManyToMany: nameColumnText = nameColumnText + ManyToMany; break; } var originColumnText = $"<div><span class='go-gray'>Entity: </span> {relation.OriginEntityName}</div><div><span class='go-gray'>Field: </span> {relation.OriginFieldName}</div>"; var targetColumnText = $"<div><span class='go-gray'>Entity: </span> {relation.TargetEntityName}</div><div><span class='go-gray'>Field: </span> {relation.TargetFieldName}</div>"; var record = new EntityRecord(); record["action"] = $"<a class='btn btn-sm btn-white' title='view relation details' href='/sdk/objects/entity/r/{ErpEntity.Id}/rl/relations/r/{relation.Id}?returnUrl={ReturnUrlEncoded}'><span class='ti-eye'></span></a>"; record["name"] = nameColumnText; record["origin"] = originColumnText; record["target"] = targetColumnText; Records.Add(record); } #endregion HeaderToolbar.AddRange(AdminPageUtils.GetEntityAdminSubNav(ErpEntity, "relations")); ErpRequestContext.PageContext = PageContext; return(Page()); }
public void OnGet() { Init(); #region << InitPage >> int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; var pageSer = new PageService(); var entMan = new EntityManager(); var appServ = new AppService(); var pages = pageSer.GetAll(); var entities = entMan.ReadEntities().Object; var apps = appServ.GetAllApplications(); #region << Apply filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); foreach (var filter in submittedFilters) { switch (filter.Name) { default: case "label": if (filter.Type == FilterType.CONTAINS) { pages = pages.FindAll(x => x.Label.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; case "name": if (filter.Type == FilterType.CONTAINS) { pages = pages.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; case "app": if (filter.Type == FilterType.EQ) { var app = apps.FirstOrDefault(x => x.Name.ToLowerInvariant() == filter.Value.ToLowerInvariant()); if (app != null) { pages = pages.FindAll(x => x.AppId == app.Id).ToList(); } else { pages = new List <ErpPage>(); } } break; case "entity": if (filter.Type == FilterType.EQ) { var entity = entities.FirstOrDefault(x => x.Name.ToLowerInvariant() == filter.Value.ToLowerInvariant()); if (entity != null) { pages = pages.FindAll(x => x.EntityId == entity.Id).ToList(); } else { pages = new List <ErpPage>(); } } break; case "type": if (filter.Type == FilterType.CONTAINS) { foreach (var typeEnum in Enum.GetValues(typeof(PageType)).Cast <PageType>()) { var enumDescription = typeEnum.GetLabel(); if (!enumDescription.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())) { pages = pages.FindAll(x => x.Type != typeEnum).ToList(); } } //pages = pages.FindAll(x => x.Type == entity.Id).ToList(); } break; case "system": if (filter.Type == FilterType.EQ) { if (filter.Value == "true") { pages = pages.FindAll(x => x.System).ToList(); } else if (filter.Value == "false") { pages = pages.FindAll(x => !x.System).ToList(); } } break; case "customized": if (filter.Type == FilterType.EQ) { if (filter.Value == "true") { pages = pages.FindAll(x => x.IsRazorBody).ToList(); } else if (filter.Value == "false") { pages = pages.FindAll(x => !x.IsRazorBody).ToList(); } } break; } } #endregion TotalCount = pages.Count; ReturnUrlEncoded = HttpUtility.UrlEncode(PageContext.HttpContext.Request.Path + PageContext.HttpContext.Request.QueryString); PageDescription = PageUtils.GenerateListPageDescription(PageContext.HttpContext, "", TotalCount); #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "1%" }, new GridColumn() { Label = "Label", Name = "label", Sortable = true, Searchable = true }, new GridColumn() { Label = "Name", Name = "name", Sortable = true, Searchable = true }, new GridColumn() { Label = "App", Name = "app", Width = "140px" }, new GridColumn() { Label = "Entity", Name = "entity", Width = "140px" }, new GridColumn() { Label = "Type", Name = "type", Sortable = true, Width = "120px" }, new GridColumn() { Label = "system", Name = "system", Sortable = true, Width = "80px" }, new GridColumn() { Label = "Customized", Name = "customized", Sortable = true, Width = "80px" } }; #endregion #region << Records >> switch (SortBy) { default: case "label": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Label).ToList(); } else { pages = pages.OrderBy(x => x.Label).ToList(); } break; case "name": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Name).ToList(); } else { pages = pages.OrderBy(x => x.Name).ToList(); } break; case "type": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.Type).ToList(); } else { pages = pages.OrderBy(x => x.Type).ToList(); } break; case "system": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.System).ToList(); } else { pages = pages.OrderBy(x => x.System).ToList(); } break; case "customized": if (SortOrder == QuerySortType.Descending) { pages = pages.OrderByDescending(x => x.IsRazorBody).ToList(); } else { pages = pages.OrderBy(x => x.IsRazorBody).ToList(); } break; } //Apply pager var skipPages = (Pager - 1) * PagerSize; pages = pages.Skip(skipPages).Take(PagerSize).ToList(); foreach (var page in pages) { //The entity of the page could be deleted. In this case show its id as name var pageEntityName = ""; if (page.EntityId != null) { pageEntityName = page.EntityId.Value.ToString(); } var pageEntity = entities.FirstOrDefault(x => x.Id == page.EntityId); if (pageEntity != null) { pageEntityName = pageEntity.Name; } var record = new EntityRecord(); record["id"] = page.Id; record["label"] = page.Label; record["name"] = page.Name; record["app"] = page.AppId != null?apps.First(x => x.Id == page.AppId).Name : ""; record["entity"] = pageEntityName; record["type"] = $"{page.Type.GetLabel()}"; record["system"] = page.System; record["customized"] = page.IsRazorBody; Records.Add(record); } #endregion }
public void OnGet() { Init(); #region << InitPage >> HeaderToolbar.AddRange(AdminPageUtils.GetJobAdminSubNav("plan")); int pager = 0; string sortBy = ""; QuerySortType sortOrder = QuerySortType.Ascending; PageUtils.GetListQueryParams(PageContext.HttpContext, out pager, out sortBy, out sortOrder); Pager = pager; SortBy = sortBy; SortOrder = sortOrder; #endregion #region << Create Columns >> Columns = new List <GridColumn>() { new GridColumn() { Name = "action", Width = "140px" }, new GridColumn() { Label = "", Name = "status", Width = "30px" }, new GridColumn() { Label = "name", Name = "name" }, new GridColumn() { Label = "type", Name = "type", Width = "100px" }, new GridColumn() { Label = "last trigger", Name = "last_trigger", Width = "140px" }, new GridColumn() { Label = "next trigger", Name = "next_trigger", Width = "140px" }, }; #endregion #region << Records >> Records = ScheduleManager.Current.GetSchedulePlans().MapTo <OutputSchedulePlan>(); Records = Records.OrderBy(x => x.Name).ThenByDescending(x => x.CreatedOn).ToList(); #region << Apply Filters >> var submittedFilters = PageUtils.GetPageFiltersFromQuery(PageContext.HttpContext); if (submittedFilters.Count > 0) { foreach (var filter in submittedFilters) { switch (filter.Name) { case "name": if (filter.Type == FilterType.CONTAINS) { Records = Records.FindAll(x => x.Name.ToLowerInvariant().Contains(filter.Value.ToLowerInvariant())).ToList(); } break; default: break; } } } #endregion TotalCount = Records.Count; Records = Records.Skip((Pager - 1) * PagerSize).Take(PagerSize).ToList(); #endregion }