public ColumnMetadata(string name, DType schema, DataFormat?dataFormat, string displayName, bool isReadOnly, bool isKey, bool isRequired, ColumnCreationKind creationKind, ColumnVisibility visibility, string titleColumnName, string subtitleColumnName, string thumbnailColumnName, ColumnLookupMetadata?lookupMetadata, ColumnAttachmentMetadata?attachmentMetadata) { Contracts.AssertNonEmpty(name); Contracts.AssertValid(schema); Contracts.AssertOneOfValueTypeOrNull(dataFormat, DataTypeInfo.GetValidDataFormats(schema.Kind)); Contracts.AssertNonEmpty(displayName); Contracts.AssertNonEmptyOrNull(titleColumnName); Contracts.AssertNonEmptyOrNull(subtitleColumnName); Contracts.AssertNonEmptyOrNull(thumbnailColumnName); Contracts.AssertValueOrNull(lookupMetadata); Contracts.AssertValueOrNull(attachmentMetadata); Name = name; Type = schema; DataFormat = dataFormat; DisplayName = displayName; IsReadOnly = isReadOnly; IsKey = isKey; IsRequired = isRequired; _kind = creationKind; _visibility = visibility; TitleColumnName = titleColumnName; SubtitleColumnName = subtitleColumnName; ThumbnailColumnName = thumbnailColumnName; LookupMetadata = lookupMetadata; AttachmentMetadata = attachmentMetadata; if (dataFormat == PowerFx.Core.App.DataFormat.AllowedValues) { AllowedValues = AllowedValuesMetadata.CreateForValue(schema); } }
public ReportPageViewModel(IRegionManager regionManager, INepalHajjCommitteeRepository repository) : base(regionManager) { _repository = repository; Years = new List <int> { 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030 }; Genders = new List <string> { "Male", "Female" }; FilterModel = new FilterModel { VisitYear = DateTime.Now.Year }; ColumnVisibility = new ColumnVisibility(); }
public static QueryOptions ParseOptions(IMVCGridDefinition grid, NameValueCollection queryString) { string qsKeyPage = grid.QueryStringPrefix + QueryStringSuffix_Page; string qsKeySort = grid.QueryStringPrefix + QueryStringSuffix_Sort; string qsKeyDirection = grid.QueryStringPrefix + QueryStringSuffix_SortDir; string qsKeyEngine = grid.QueryStringPrefix + QueryStringSuffix_Engine; string qsKeyPageSize = grid.QueryStringPrefix + QueryStringSuffix_ItemsPerPage; string qsColumns = grid.QueryStringPrefix + QueryStringSuffix_Columns; var options = new QueryOptions(); if (queryString[qsKeyEngine] != null) { string re = queryString[qsKeyEngine]; options.RenderingEngineName = re; } if (!grid.Paging) { options.ItemsPerPage = null; options.PageIndex = null; } else { options.ItemsPerPage = grid.ItemsPerPage; if (grid.AllowChangingPageSize) { if (queryString[qsKeyPageSize] != null) { int pageSize; if (Int32.TryParse(queryString[qsKeyPageSize], out pageSize)) { options.ItemsPerPage = pageSize; } } if (grid.MaxItemsPerPage.HasValue && grid.MaxItemsPerPage.Value < options.ItemsPerPage) { options.ItemsPerPage = grid.MaxItemsPerPage.Value; } } if (options.ItemsPerPage <= 0) { options.ItemsPerPage = 20; } options.PageIndex = 0; if (queryString[qsKeyPage] != null) { int pageNum; if (Int32.TryParse(queryString[qsKeyPage], out pageNum)) { options.PageIndex = pageNum - 1; if (options.PageIndex < 0) { options.PageIndex = 0; } } } } if (!grid.Filtering) { //options.Filters } else { var filterableColumns = grid.GetColumns().Where(p => p.EnableFiltering); foreach (var col in filterableColumns) { string qsKey = grid.QueryStringPrefix + col.ColumnName; if (queryString[qsKey] != null) { string filterValue = queryString[qsKey]; if (!String.IsNullOrWhiteSpace(filterValue)) { options.Filters.Add(col.ColumnName, filterValue); } } } } if (!grid.Sorting) { options.SortColumnName = null; options.SortColumnData = null; options.SortDirection = SortDirection.Unspecified; } else { options.SortColumnName = null; string sortColName = null; if (queryString[qsKeySort] != null) { sortColName = queryString[qsKeySort]; } if (String.IsNullOrWhiteSpace(sortColName)) { sortColName = grid.DefaultSortColumn; } string thisSortColName = sortColName.Trim().ToLower(); // validate SortColumn var colDef = grid.GetColumns().SingleOrDefault(p => p.ColumnName.ToLower() == thisSortColName); if (colDef != null && !colDef.EnableSorting) { colDef = null; } if (colDef != null) { options.SortColumnName = colDef.ColumnName; options.SortColumnData = colDef.SortColumnData; } options.SortDirection = grid.DefaultSortDirection; if (queryString[qsKeyDirection] != null) { string sortDir = queryString[qsKeyDirection]; if (String.Compare(sortDir, "dsc", true) == 0) { options.SortDirection = SortDirection.Dsc; } else if (String.Compare(sortDir, "asc", true) == 0) { options.SortDirection = SortDirection.Asc; } } } if (grid.AdditionalQueryOptionNames.Count > 0) { foreach (var aqon in grid.AdditionalQueryOptionNames) { string qsKeyAQO = grid.QueryStringPrefix + aqon; string val = ""; if (queryString[qsKeyAQO] != null) { val = queryString[qsKeyAQO]; } options.AdditionalQueryOptions.Add(aqon, val); } } if (grid.PageParameterNames.Count > 0) { foreach (var aqon in grid.PageParameterNames) { string qsKeyAQO = QueryStringPrefix_PageParameter + grid.QueryStringPrefix + aqon; string val = ""; if (queryString[qsKeyAQO] != null) { val = queryString[qsKeyAQO]; } options.PageParameters.Add(aqon, val); } } var gridColumns = grid.GetColumns(); List <ColumnVisibility> requestedColumns = new List <ColumnVisibility>(); if (queryString[qsColumns] == null) { foreach (var gridColumn in gridColumns) { requestedColumns.Add( new ColumnVisibility() { ColumnName = gridColumn.ColumnName, Visible = gridColumn.Visible }); } } else { string cols = queryString[qsColumns]; string[] colParts = cols.Split(',', ';'); foreach (var colPart in colParts) { if (String.IsNullOrWhiteSpace(colPart)) { continue; } string thisColPart = colPart.ToLower().Trim(); var gridColumn = gridColumns.SingleOrDefault(p => p.ColumnName.ToLower() == thisColPart); if (gridColumn != null) { if (requestedColumns.SingleOrDefault(p => p.ColumnName == gridColumn.ColumnName) == null) { requestedColumns.Add( new ColumnVisibility() { ColumnName = gridColumn.ColumnName, Visible = true }); } } } } foreach (var gridColumn in gridColumns) { var requestedCol = requestedColumns.SingleOrDefault(p => p.ColumnName == gridColumn.ColumnName); if (requestedCol == null) { requestedCol = new ColumnVisibility() { ColumnName = gridColumn.ColumnName, Visible = false }; requestedColumns.Add(requestedCol); } if (!requestedCol.Visible && gridColumn.Visible && !gridColumn.AllowChangeVisibility) { requestedCol.Visible = true; } } options.ColumnVisibility.AddRange(requestedColumns); return(options); }
public ReportExportPageViewModel(IRegionManager regionManager) : base(regionManager) { _filePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\" + Constants.MainFolder + @"\printing.html"; ColumnVisibility = new ColumnVisibility(); }
/// <summary> /// Parses the options. /// </summary> /// <param name="grid">The grid.</param> /// <param name="httpRequest">The HTTP request.</param> /// <returns>QueryOptions.</returns> /// TODO Edit XML Comment Template for ParseOptions public static QueryOptions ParseOptions( IMvcGridDefinition grid, HttpRequest httpRequest) { var qsKeyPage = grid.QueryStringPrefix + QueryStringSuffixPage; var qsKeySort = grid.QueryStringPrefix + QueryStringSuffixSort; var qsKeyDirection = grid.QueryStringPrefix + QueryStringSuffixSortDir; var qsKeyEngine = grid.QueryStringPrefix + QueryStringSuffixEngine; var qsKeyPageSize = grid.QueryStringPrefix + QueryStringSuffixItemsPerPage; var qsColumns = grid.QueryStringPrefix + QueryStringSuffixColumns; var options = new QueryOptions(); if (httpRequest.QueryString[qsKeyEngine] != null) { var re = httpRequest.QueryString[qsKeyEngine]; options.RenderingEngineName = re; } if (!grid.Paging) { options.ItemsPerPage = null; options.PageIndex = null; } else { options.ItemsPerPage = grid.ItemsPerPage; if (grid.AllowChangingPageSize) { if (httpRequest.QueryString[qsKeyPageSize] != null) { if (int.TryParse( httpRequest.QueryString[qsKeyPageSize], out int pageSize)) { options.ItemsPerPage = pageSize; } } if (grid.MaxItemsPerPage.HasValue && grid.MaxItemsPerPage.Value < options.ItemsPerPage) { options.ItemsPerPage = grid.MaxItemsPerPage.Value; } } if (options.ItemsPerPage <= 0) { options.ItemsPerPage = 20; } options.PageIndex = 0; if (httpRequest.QueryString[qsKeyPage] != null) { if (int.TryParse( httpRequest.QueryString[qsKeyPage], out int pageNum)) { options.PageIndex = pageNum - 1; if (options.PageIndex < 0) { options.PageIndex = 0; } } } } if (grid.Filtering) { var filterableColumns = grid.GetColumns().Where(p => p.EnableFiltering); foreach (var col in filterableColumns) { var qsKey = grid.QueryStringPrefix + col.ColumnName; if (httpRequest.QueryString[qsKey] == null) { continue; } var filterValue = httpRequest.QueryString[qsKey]; if (!string.IsNullOrWhiteSpace(filterValue)) { options.Filters.Add(col.ColumnName, filterValue); } } } if (!grid.Sorting) { options.SortColumnName = null; options.SortColumnData = null; options.SortDirection = SortDirection.Unspecified; } else { options.SortColumnName = null; string sortColName = null; if (httpRequest.QueryString[qsKeySort] != null) { sortColName = httpRequest.QueryString[qsKeySort]; } if (string.IsNullOrWhiteSpace(sortColName)) { sortColName = grid.DefaultSortColumn; } var thisSortColName = sortColName.Trim().ToLower(); var colDef = grid.GetColumns() .SingleOrDefault( p => p.ColumnName.ToLower() == thisSortColName); if (colDef != null && !colDef.EnableSorting) { colDef = null; } if (colDef != null) { options.SortColumnName = colDef.ColumnName; options.SortColumnData = colDef.SortColumnData; } options.SortDirection = grid.DefaultSortDirection; if (httpRequest.QueryString[qsKeyDirection] != null) { var sortDir = httpRequest.QueryString[qsKeyDirection]; if (sortDir.EqualsOrdinalIgnoreCase("dsc")) { options.SortDirection = SortDirection.Dsc; } else if (sortDir.EqualsOrdinalIgnoreCase("asc")) { options.SortDirection = SortDirection.Asc; } } } if (grid.AdditionalQueryOptionNames.Count > 0) { foreach (var aqon in grid.AdditionalQueryOptionNames) { var qsKeyAqo = grid.QueryStringPrefix + aqon; var val = ""; if (httpRequest.QueryString[qsKeyAqo] != null) { val = httpRequest.QueryString[qsKeyAqo]; } options.AdditionalQueryOptions.Add(aqon, val); } } if (grid.PageParameterNames.Count > 0) { foreach (var aqon in grid.PageParameterNames) { var qsKeyAqo = QueryStringPrefixPageParameter + grid.QueryStringPrefix + aqon; var val = ""; if (httpRequest.QueryString[qsKeyAqo] != null) { val = httpRequest.QueryString[qsKeyAqo]; } options.PageParameters.Add(aqon, val); } } var gridColumns = grid.GetColumns().ToList(); var requestedColumns = new List <ColumnVisibility>(); if (httpRequest.QueryString[qsColumns] == null) { requestedColumns.AddRange( gridColumns.Select( gridColumn => new ColumnVisibility { ColumnName = gridColumn.ColumnName, Visible = gridColumn.Visible })); } else { var cols = httpRequest.QueryString[qsColumns]; var colParts = cols.Split(',', ';'); foreach (var colPart in colParts) { if (string.IsNullOrWhiteSpace(colPart)) { continue; } var thisColPart = colPart.ToLower().Trim(); var gridColumn = gridColumns.SingleOrDefault( p => p.ColumnName.ToLower() == thisColPart); if (gridColumn == null) { continue; } { if (requestedColumns.SingleOrDefault( p => p.ColumnName == gridColumn.ColumnName) == null) { requestedColumns.Add( new ColumnVisibility { ColumnName = gridColumn.ColumnName, Visible = true }); } } } } foreach (var gridColumn in gridColumns) { var requestedCol = requestedColumns.SingleOrDefault( p => p.ColumnName == gridColumn.ColumnName); if (requestedCol == null) { requestedCol = new ColumnVisibility { ColumnName = gridColumn.ColumnName, Visible = false }; requestedColumns.Add(requestedCol); } if (!requestedCol.Visible && gridColumn.Visible && !gridColumn.AllowChangeVisibility) { requestedCol.Visible = true; } } options.ColumnVisibility.AddRange(requestedColumns); return(options); }
public ColumnVisibilityAttribute(ColumnVisibility visibility) : this(null, visibility) { }
public ColumnVisibilityAttribute(string contextName, ColumnVisibility visibility) { ContextName = contextName ?? string.Empty; Visibility = visibility; }