Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
 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);
 }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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;
                        }
                    });
                });
            });
        }