コード例 #1
0
    /// <summary>
    /// Display DataSet content.
    /// </summary>
    /// <param name="ds">DataSet to display</param>
    private void DisplayDataSet(DataSet ds)
    {
        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            // Prepare list of tables
            string excludedTableNames = (ExcludedTableNames != null) ? ";" + ExcludedTableNames.Trim(';').ToLowerCSafe() + ";" : "";
            SortedDictionary <string, string> tables = new SortedDictionary <string, string>();
            foreach (DataTable dt in ds.Tables)
            {
                if (!DataHelper.DataSourceIsEmpty(dt))
                {
                    string tableName = dt.TableName;
                    if (!excludedTableNames.Contains(";" + tableName.ToLowerCSafe() + ";"))
                    {
                        tables.Add(GetString("ObjectType." + tableName), tableName);
                    }
                }
            }

            // Generate the tables
            foreach (string tableName in tables.Values)
            {
                DataTable dt = ds.Tables[tableName];
                if (!DataHelper.DataSourceIsEmpty(dt))
                {
                    if (ds.Tables.Count > 1)
                    {
                        plcContent.Controls.Add(new LiteralControl(GetTableHeaderText(dt)));
                    }

                    Table contentTable = null;

                    if (!ForceRowDisplayFormat && (dt.Columns.Count >= 6) && !dt.TableName.EqualsCSafe("ObjectTranslation", true))
                    {
                        // Write all rows
                        foreach (DataRow dr in dt.Rows)
                        {
                            contentTable = new Table();
                            SetTable(contentTable);

                            // Set first table as table property
                            if (Table == null)
                            {
                                Table = contentTable;
                            }

                            // Create table header
                            TableCell labelCell = new TableHeaderCell();
                            labelCell.Text = GetString("General.FieldName");

                            TableCell valueCell = new TableHeaderCell();
                            valueCell.Text = GetString("General.Value");

                            AddRow(contentTable, labelCell, valueCell, null, "UniGridHead", false);

                            // Add values
                            bool even = false;
                            foreach (DataColumn dc in dt.Columns)
                            {
                                string content = GetRowColumnContent(dr, dc, false);

                                if (ShowAllFields || !String.IsNullOrEmpty(content))
                                {
                                    labelCell      = new TableCell();
                                    labelCell.Text = "<strong>" + dc.ColumnName + "</strong>";

                                    valueCell      = new TableCell();
                                    valueCell.Text = content;
                                    AddRow(contentTable, labelCell, valueCell, null, null, even);
                                    even = !even;
                                }
                            }

                            plcContent.Controls.Add(contentTable);
                            plcContent.Controls.Add(new LiteralControl("<br />"));
                        }
                    }
                    else
                    {
                        contentTable = new Table();
                        SetTable(contentTable);

                        // Add header
                        TableRow tr = new TableRow();
                        tr.CssClass = "UniGridHead";

                        int h = 1;
                        foreach (DataColumn column in dt.Columns)
                        {
                            TableHeaderCell th = new TableHeaderCell();
                            th.Text = ValidationHelper.GetString(column.Caption, column.ColumnName);
                            th.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
                            if (!ForceRowDisplayFormat && (h == dt.Columns.Count))
                            {
                                th.Style.Add(HtmlTextWriterStyle.Width, "100%");
                            }
                            tr.Cells.Add(th);
                            h++;
                        }
                        contentTable.Rows.Add(tr);

                        // Write all rows
                        int i = 0;
                        foreach (DataRow dr in dt.Rows)
                        {
                            ++i;
                            tr          = new TableRow();
                            tr.CssClass = ((i % 2) == 0) ? "OddRow" : "EvenRow";

                            // Add values
                            foreach (DataColumn dc in dt.Columns)
                            {
                                TableCell tc    = new TableCell();
                                object    value = dr[dc.ColumnName];

                                // Possible DataTime columns
                                if ((dc.DataType == typeof(DateTime)) && (value != DBNull.Value))
                                {
                                    DateTime    dateTime    = Convert.ToDateTime(value);
                                    CultureInfo cultureInfo = new CultureInfo(CMSContext.CurrentUser.PreferredUICultureCode);
                                    value = dateTime.ToString(cultureInfo);
                                }

                                string content = ValidationHelper.GetString(value, "");
                                tc.Text = EncodeDisplayedData ? HTMLHelper.HTMLEncode(content) : content;

                                if (!ForceRowDisplayFormat)
                                {
                                    tc.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
                                }
                                tr.Cells.Add(tc);
                            }
                            contentTable.Rows.Add(tr);
                        }
                        plcContent.Controls.Add(contentTable);
                        plcContent.Controls.Add(new LiteralControl("<br />"));
                    }
                }
            }
        }
        else
        {
            Label lblError = new Label();
            lblError.CssClass = "InfoLabel";
            lblError.Text     = GetString("general.nodatafound");
            plcContent.Controls.Add(lblError);
        }
    }
コード例 #2
0
    /// <summary>
    /// Compare DataSets.
    /// </summary>
    /// <param name="ds">Original DataSet</param>
    /// <param name="compareDs">DataSet to compare</param>
    private void CompareDataSets(DataSet ds, DataSet compareDs)
    {
        Table = new Table();
        SetTable(Table);
        Table.CssClass += " NoSideBorders";

        // Ensure same tables in DataSets
        EnsureSameTables(ds, compareDs);
        EnsureSameTables(compareDs, ds);

        // Prepare list of tables
        SortedDictionary <string, string> tables = new SortedDictionary <string, string>();

        foreach (DataTable dt in ds.Tables)
        {
            string excludedTableNames = (ExcludedTableNames != null) ? ";" + ExcludedTableNames.Trim(';').ToLowerCSafe() + ";" : "";
            string tableName          = dt.TableName;
            if (!DataHelper.DataSourceIsEmpty(ds.Tables[tableName]) || !DataHelper.DataSourceIsEmpty(CompareDataSet.Tables[tableName]))
            {
                if (!excludedTableNames.Contains(";" + tableName.ToLowerCSafe() + ";"))
                {
                    tables.Add(GetString("ObjectType." + tableName), tableName);
                }
            }
        }

        // Generate the tables
        foreach (string tableName in tables.Values)
        {
            DataTable dt        = ds.Tables[tableName].Copy();
            DataTable dtCompare = CompareDataSet.Tables[tableName].Copy();

            if (dt.PrimaryKey.Length <= 0)
            {
                continue;
            }

            // Add table heading
            if ((tables.Count > 1) || (ds.Tables.Count > 1))
            {
                AddTableHeaderRow(Table, GetTableHeaderText(dt), ((Table.Rows.Count > 0) ? "TableSeparator " : "") + "NoSideBorders");
            }

            while (dt.Rows.Count > 0 || dtCompare.Rows.Count > 0)
            {
                // Add table header row
                TableCell labelCell = new TableHeaderCell();
                labelCell.Text = GetString("General.FieldName");
                TableCell valueCell = new TableHeaderCell();
                valueCell.Text = GetString("General.Value");
                TableCell valueCompare = new TableHeaderCell();
                valueCompare.Text = GetString("General.Value");

                AddRow(Table, labelCell, valueCell, valueCompare, "UniGridHead", false);

                DataRow srcDr = null;
                DataRow dstDr = null;

                if ((tables.Count == 1) && (dt.Rows.Count == 1) && (dtCompare.Rows.Count == 1))
                {
                    srcDr = dt.Rows[0];
                    dstDr = dtCompare.Rows[0];
                }
                else
                {
                    if (!DataHelper.DataSourceIsEmpty(dt))
                    {
                        srcDr = dt.Rows[0];
                        dstDr = dtCompare.Rows.Find(GetPrimaryColumnsValue(dt, srcDr));
                    }
                    else
                    {
                        dstDr = dtCompare.Rows[0];
                        srcDr = dt.Rows.Find(GetPrimaryColumnsValue(dtCompare, dstDr));
                    }

                    // If match not find, try to find in guid column
                    if ((srcDr == null) || (dstDr == null))
                    {
                        DataTable dtToSearch = null;
                        DataRow   drTocheck  = null;

                        if (srcDr == null)
                        {
                            dtToSearch = dt;
                            drTocheck  = dstDr;
                        }
                        else
                        {
                            dtToSearch = dtCompare;
                            drTocheck  = srcDr;
                        }


                        GeneralizedInfo infoObj = CMSObjectHelper.GetObject(drTocheck, dt.TableName.Replace("_", "."));
                        if ((infoObj != null) && ((infoObj.CodeNameColumn != TypeInfo.COLUMN_NAME_UNKNOWN) || (infoObj.GUIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN)))
                        {
                            DataRow[] rows = dtToSearch.Select(infoObj.CodeNameColumn + "='" + drTocheck[infoObj.CodeNameColumn] + "'");
                            if (rows.Length > 0)
                            {
                                if (srcDr == null)
                                {
                                    srcDr = rows[0];
                                }
                                else
                                {
                                    dstDr = rows[0];
                                }
                            }
                            else
                            {
                                rows = dtToSearch.Select(infoObj.GUIDColumn + "='" + drTocheck[infoObj.GUIDColumn] + "'");
                                if (rows.Length > 0)
                                {
                                    if (srcDr == null)
                                    {
                                        srcDr = rows[0];
                                    }
                                    else
                                    {
                                        dstDr = rows[0];
                                    }
                                }
                            }
                        }
                    }
                }

                // Add values
                bool even = false;
                foreach (DataColumn dc in dt.Columns)
                {
                    // Get content values
                    string fieldContent        = GetRowColumnContent(srcDr, dc, true);
                    string fieldCompareContent = GetRowColumnContent(dstDr, dc, true);

                    if (ShowAllFields || !String.IsNullOrEmpty(fieldContent) || !String.IsNullOrEmpty(fieldCompareContent))
                    {
                        // Initialize comparators
                        TextComparison comparefirst = new TextComparison();
                        comparefirst.SynchronizedScrolling = false;
                        comparefirst.ComparisonMode        = TextComparisonModeEnum.PlainTextWithoutFormating;
                        comparefirst.EnsureHTMLLineEndings = true;

                        TextComparison comparesecond = new TextComparison();
                        comparesecond.SynchronizedScrolling = false;
                        comparesecond.RenderingMode         = TextComparisonTypeEnum.DestinationText;
                        comparesecond.EnsureHTMLLineEndings = true;

                        comparefirst.PairedControl = comparesecond;

                        // Set comparator content
                        comparefirst.SourceText      = fieldContent;
                        comparefirst.DestinationText = fieldCompareContent;

                        // Create set of cells
                        labelCell      = new TableCell();
                        labelCell.Text = "<strong>" + dc.ColumnName + "</strong>";
                        valueCell      = new TableCell();
                        valueCell.Controls.Add(comparefirst);
                        valueCompare = new TableCell();
                        valueCompare.Controls.Add(comparesecond);

                        // Add comparison row
                        AddRow(Table, labelCell, valueCell, valueCompare, null, even);
                        even = !even;
                    }
                }

                // Remove rows from tables
                if (srcDr != null)
                {
                    dt.Rows.Remove(srcDr);
                }
                if (dstDr != null)
                {
                    dtCompare.Rows.Remove(dstDr);
                }

                if (dt.Rows.Count > 0 || dtCompare.Rows.Count > 0)
                {
                    TableCell emptyCell = new TableCell();
                    emptyCell.Text = "&nbsp;";
                    AddRow(Table, emptyCell, null, null, "TableSeparator", false);
                    even = false;
                }
            }
        }
        plcContent.Controls.Add(Table);
    }
コード例 #3
0
    /// <summary>
    /// Display DataSet content.
    /// </summary>
    /// <param name="ds">DataSet to display</param>
    private void DisplayDataSet(DataSet ds)
    {
        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            // Prepare list of tables
            string        excludedTableNames = (ExcludedTableNames != null) ? ";" + ExcludedTableNames.Trim(';').ToLowerCSafe() + ";" : "";
            List <string> tables             = new List <string>();

            foreach (DataTable dt in ds.Tables)
            {
                if (!DataHelper.DataSourceIsEmpty(dt))
                {
                    string tableName = dt.TableName;
                    if (!excludedTableNames.Contains(";" + tableName.ToLowerCSafe() + ";"))
                    {
                        tables.Add(tableName);
                    }
                }
            }

            // Generate the tables ordered by object type display name
            foreach (string tableName in tables.OrderBy(x => GetString("ObjectType." + x)))
            {
                DataTable dt = ds.Tables[tableName];
                if (!DataHelper.DataSourceIsEmpty(dt))
                {
                    if (ds.Tables.Count > 1)
                    {
                        plcContent.Controls.Add(new LiteralControl(GetTableHeaderText(dt)));
                    }

                    Table contentTable;

                    if (!ForceRowDisplayFormat && (dt.Columns.Count >= 6) && !dt.TableName.EqualsCSafe(TranslationHelper.TRANSLATION_TABLE, true))
                    {
                        // Write all rows
                        foreach (DataRow dr in dt.Rows)
                        {
                            contentTable = new Table();
                            SetTable(contentTable);

                            // Set first table as table property
                            if (Table == null)
                            {
                                Table = contentTable;
                            }

                            // Create table header
                            TableCell labelCell = new TableHeaderCell();
                            labelCell.Text = GetString("General.FieldName");

                            TableCell valueCell = new TableHeaderCell();
                            valueCell.Text = GetString("General.Value");

                            AddRow(contentTable, labelCell, valueCell, null, "unigrid-head", true);

                            // Add values
                            foreach (DataColumn dc in dt.Columns)
                            {
                                string content = GetRowColumnContent(dr, dc, false);

                                if (ShowAllFields || !String.IsNullOrEmpty(content))
                                {
                                    labelCell      = new TableCell();
                                    labelCell.Text = "<strong>" + dc.ColumnName + "</strong>";

                                    valueCell      = new TableCell();
                                    valueCell.Text = content;
                                    AddRow(contentTable, labelCell, valueCell, null);
                                }
                            }

                            plcContent.Controls.Add(contentTable);
                            plcContent.Controls.Add(new LiteralControl("<br />"));
                        }
                    }
                    else
                    {
                        contentTable = new Table();
                        SetTable(contentTable);

                        // Add header
                        TableRow tr = new TableHeaderRow {
                            TableSection = TableRowSection.TableHeader
                        };
                        tr.CssClass = "unigrid-head";

                        int h = 1;
                        foreach (DataColumn column in dt.Columns)
                        {
                            TableHeaderCell th = new TableHeaderCell();
                            th.Text = ValidationHelper.GetString(column.Caption, column.ColumnName);

                            if (!ForceRowDisplayFormat && (h == dt.Columns.Count))
                            {
                                th.CssClass = "main-column-100";
                            }
                            tr.Cells.Add(th);
                            h++;
                        }
                        contentTable.Rows.Add(tr);

                        // Write all rows
                        foreach (DataRow dr in dt.Rows)
                        {
                            tr = new TableRow();

                            // Add values
                            foreach (DataColumn dc in dt.Columns)
                            {
                                TableCell tc    = new TableCell();
                                object    value = dr[dc.ColumnName];

                                // Possible DataTime columns
                                if ((dc.DataType == typeof(DateTime)) && (value != DBNull.Value))
                                {
                                    DateTime    dateTime    = Convert.ToDateTime(value);
                                    CultureInfo cultureInfo = CultureHelper.GetCultureInfo(MembershipContext.AuthenticatedUser.PreferredUICultureCode);
                                    value = dateTime.ToString(cultureInfo);
                                }

                                string content = ValidationHelper.GetString(value, String.Empty);
                                tc.Text = EncodeDisplayedData ? HTMLHelper.HTMLEncode(content) : content;

                                if (!ForceRowDisplayFormat)
                                {
                                    tc.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
                                }
                                tr.Cells.Add(tc);
                            }
                            contentTable.Rows.Add(tr);
                        }
                        plcContent.Controls.Add(contentTable);
                        plcContent.Controls.Add(new LiteralControl("<br />"));
                    }
                }
            }
        }
        else
        {
            Label lblError = new Label();
            lblError.CssClass = "InfoLabel";
            lblError.Text     = GetString("general.nodatafound");
            plcContent.Controls.Add(lblError);
        }
    }