/// <summary> /// Fixed: /// </summary> private static HtmlBuilder Results( this HtmlBuilder hb, Context context, string text, int offset, EnumerableRowCollection <DataRow> dataRows) { if (dataRows?.Any() == true) { var dataSet = ResultContents(context: context, dataRows: dataRows); dataRows.ForEach(result => { var referenceType = result.String("ReferenceType"); var referenceId = result.Long("ReferenceId"); var dataRow = dataSet.Tables[referenceType] .AsEnumerable() .FirstOrDefault(o => o["Id"].ToLong() == referenceId); if (dataRow != null) { var href = string.Empty; switch (referenceType) { case "Sites": href = Locations.ItemIndex( context: context, id: referenceId); break; default: href = Locations.ItemEdit( context: context, id: referenceId); break; } href += "?back=1"; hb.Section( attributes: new HtmlAttributes() .Class("result") .Add("data-href", href), action: () => hb .Breadcrumb( context: context, ss: new SiteSettings() { SiteId = dataRow.Long("SiteId") }) .H(number: 3, action: () => hb .A( href: href, text: dataRow.String("Title"))) .P(action: () => hb .Text(text: dataRow.String("Body")))); } }); } return(hb); }
public static Dictionary <string, CrosstabElement> ColumnsElements( Column groupByX, EnumerableRowCollection <DataRow> dataRows, List <Column> columnList) { var data = new List <CrosstabElement>(); dataRows.ForEach(dataRow => columnList.ForEach(column => data.Add(new CrosstabElement( groupByX: dataRow.String(groupByX.ColumnName), groupByY: column.ColumnName, value: dataRow.Decimal(column.ColumnName))))); return(ElementHash(data: data)); }
public static List <CrosstabElement> ColumnsElements( Column groupByX, EnumerableRowCollection <DataRow> dataRows, List <Column> columnList) { var data = new List <CrosstabElement>(); dataRows.ForEach(o => columnList.ForEach(column => data.Add(new CrosstabElement( o.String(groupByX.ColumnName), column.ColumnName, o.Decimal(column.ColumnName))))); return(data); }
private static Dictionary <long, Types> Hash(EnumerableRowCollection <DataRow> dataRows) { var hash = dataRows .Select(o => o["ReferenceId"].ToLong()) .Distinct() .ToDictionary(o => o, o => Types.NotSet); dataRows.ForEach(dataRow => { var key = dataRow["ReferenceId"].ToLong(); hash[key] |= (Types)dataRow["PermissionType"].ToLong(); }); return(hash); }
/// <summary> /// Fixed: /// </summary> private static HtmlBuilder Results( this HtmlBuilder hb, string text, int offset, EnumerableRowCollection <DataRow> results) { if (results != null && results.Any()) { var dataSet = ResultContents(results); results.ForEach(result => { var referenceType = result["ReferenceType"].ToString(); var referenceId = result["ReferenceId"].ToLong(); var dataRow = dataSet.Tables[referenceType] .AsEnumerable() .FirstOrDefault(o => o["Id"].ToLong() == referenceId); if (dataRow != null) { var href = string.Empty; switch (referenceType) { case "Sites": href = Locations.ItemIndex(referenceId); break; default: href = Locations.ItemEdit(referenceId); break; } hb.Section( attributes: new HtmlAttributes() .Class("result") .Add("data-href", href), action: () => hb .Breadcrumb(dataRow["SiteId"].ToLong()) .H(number: 3, action: () => hb .A( href: href, text: dataRow["Title"].ToString())) .P(action: () => hb .Text(text: dataRow["Body"].ToString()))); } }); } return(hb); }
private static HtmlBuilder CrosstabColumnsBody( this HtmlBuilder hb, SiteSettings ss, View view, string groupByX, string columns, string aggregateType, string value, string timePeriod, DateTime month, EnumerableRowCollection <DataRow> dataRows) { var columnList = CrosstabUtilities.GetColumns( ss, columns.Deserialize <IEnumerable <string> >()); var data = new List <CrosstabElement>(); dataRows.ForEach(o => columnList.ForEach(column => data.Add(new CrosstabElement( o["GroupByX"].ToString(), column, o[column].ToDecimal())))); var xColumn = ss.GetColumn(groupByX); var choicesX = xColumn?.TypeName == "datetime" ? CorrectedChoices(xColumn, timePeriod, month) : CorrectedChoices( xColumn, xColumn?.Choices(data.Select(o => o.GroupByX))); var choicesY = columnList.ToDictionary( o => o, o => new ControlData(ss.GetColumn(o)?.LabelText)); return(hb.Table( ss: ss, choicesX: choicesX, choicesY: choicesY, aggregateType: aggregateType, value: ss.GetColumn(value), daily: Daily(xColumn, timePeriod), columns: columnList, data: data)); }
private static HtmlBuilder CrosstabColumnsBody( this HtmlBuilder hb, SiteSettings ss, View view, Column groupByX, List <Column> columns, string aggregateType, Column value, string timePeriod, DateTime month, EnumerableRowCollection <DataRow> dataRows) { var columnList = CrosstabUtilities.GetColumns(ss, columns); var data = new List <CrosstabElement>(); dataRows.ForEach(o => columnList.ForEach(column => data.Add(new CrosstabElement( o.String(groupByX.ColumnName), column.ColumnName, o.Decimal(column.ColumnName))))); var choicesX = groupByX?.TypeName == "datetime" ? CorrectedChoices(groupByX, timePeriod, month) : groupByX.ChoiceHash.ToDictionary( o => o.Key, o => new ControlData(o.Value.Text)); var choicesY = columnList.ToDictionary( o => o.ColumnName, o => new ControlData(o?.LabelText)); return(hb.Table( ss: ss, choicesX: choicesX, choicesY: choicesY, aggregateType: aggregateType, value: value, daily: Daily(groupByX, timePeriod), columns: columnList, data: data)); }
public static HtmlBuilder GridRows( this HtmlBuilder hb, Context context, SiteSettings ss, List <Column> columns, EnumerableRowCollection <DataRow> dataRows, FormDataSet formDataSet = null, bool editRow = false, bool checkRow = true) { dataRows.ForEach(dataRow => hb.Tr( context: context, ss: ss, columns: columns, dataRow: dataRow, recordSelector: new RecordSelector(context), editRow: editRow, checkRow: checkRow, idColumn: Rds.IdColumn(ss.ReferenceType), formDataSet: formDataSet)); return(hb); }
public System.Text.StringBuilder Csv( Context context, SiteSettings ss, System.Text.StringBuilder csv, IEnumerable <ExportColumn> exportColumns, string delimiter, bool?encloseDoubleQuotes) { var idColumn = Rds.IdColumn(ss.ReferenceType); DataRows.ForEach(dataRow => { var dataId = dataRow.Long(idColumn).ToString(); var data = new List <string>(); var tenants = new Dictionary <string, TenantModel>(); var depts = new Dictionary <string, DeptModel>(); var groups = new Dictionary <string, GroupModel>(); var registrations = new Dictionary <string, RegistrationModel>(); var users = new Dictionary <string, UserModel>(); var sites = new Dictionary <string, SiteModel>(); var issues = new Dictionary <string, IssueModel>(); var results = new Dictionary <string, ResultModel>(); var wikis = new Dictionary <string, WikiModel>(); exportColumns.ForEach(exportColumn => { var column = exportColumn.Column; var key = column.TableName(); switch (column.SiteSettings?.ReferenceType) { case "Users": if (!users.ContainsKey(key)) { users.Add(key, new UserModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias)); } data.Add(users.Get(key).CsvData( context: context, ss: column.SiteSettings, column: column, exportColumn: exportColumn, mine: users.Get(key).Mine(context: context), encloseDoubleQuotes: encloseDoubleQuotes)); break; case "Issues": if (!issues.ContainsKey(key)) { issues.Add(key, new IssueModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias)); } data.Add(issues.Get(key).CsvData( context: context, ss: column.SiteSettings, column: column, exportColumn: exportColumn, mine: issues.Get(key).Mine(context: context), encloseDoubleQuotes: encloseDoubleQuotes)); break; case "Results": if (!results.ContainsKey(key)) { results.Add(key, new ResultModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias)); } data.Add(results.Get(key).CsvData( context: context, ss: column.SiteSettings, column: column, exportColumn: exportColumn, mine: results.Get(key).Mine(context: context), encloseDoubleQuotes: encloseDoubleQuotes)); break; } }); csv.Append(data.Join(delimiter), "\n"); }); return(csv); }
public void TBody( HtmlBuilder hb, SiteSettings ss, IEnumerable <Column> columns, bool checkAll) { var idColumn = Rds.IdColumn(ss.ReferenceType); DataRows.ForEach(dataRow => { var dataId = dataRow.Long(idColumn).ToString(); hb.Tr( attributes: new HtmlAttributes() .Class("grid-row") .DataId(dataId), action: () => { hb.Td(action: () => hb .CheckBox( controlCss: "grid-check", _checked: checkAll, dataId: dataId)); var depts = new Dictionary <string, DeptModel>(); var groups = new Dictionary <string, GroupModel>(); var users = new Dictionary <string, UserModel>(); var issues = new Dictionary <string, IssueModel>(); var results = new Dictionary <string, ResultModel>(); var wikis = new Dictionary <string, WikiModel>(); columns.ForEach(column => { var key = column.TableName(); switch (column.SiteSettings?.ReferenceType) { case "Depts": if (!depts.ContainsKey(key)) { depts.Add(key, new DeptModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, deptModel: depts.Get(key)); break; case "Groups": if (!groups.ContainsKey(key)) { groups.Add(key, new GroupModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, groupModel: groups.Get(key)); break; case "Users": if (!users.ContainsKey(key)) { users.Add(key, new UserModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, userModel: users.Get(key)); break; case "Issues": if (!issues.ContainsKey(key)) { issues.Add(key, new IssueModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, issueModel: issues.Get(key)); break; case "Results": if (!results.ContainsKey(key)) { results.Add(key, new ResultModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, resultModel: results.Get(key)); break; case "Wikis": if (!wikis.ContainsKey(key)) { wikis.Add(key, new WikiModel( column.SiteSettings, dataRow, column.TableAlias)); } hb.TdValue( ss: column.SiteSettings, column: column, wikiModel: wikis.Get(key)); break; } }); }); }); }