/// <summary> /// Displays custom columns /// </summary> private void DisplayCustomColumns() { int roleID = 0; LabelQueryResult.Text = Resources.Labels.BlankText; if (Session["isPortalAdmin"] != null) { bool isPortalAdmin = (bool)Session["isPortalAdmin"]; if (isPortalAdmin) { roleID = 1; } else { DataSet dsRoles = (DataSet)Session["UserRoles"]; // Assumption : for a product one user can have only one Role [Product Admin/Product Guest/Product CSR] DataRow[] drRoles = dsRoles.Tables[0].Select("PRDCT_ID='" + Session["SelectedProduct"].ToString() + "'"); if (drRoles.Length > 0) { roleID = int.Parse(drRoles[0]["ROLE_ID"].ToString(), CultureInfo.InvariantCulture); } } } string[] columnArray = DataProvider.GetConfiguredDisplayFields(Session["SelectedProduct"].ToString(), "Registration", roleID); string systemFieldID = String.Empty; string systemFieldValue = String.Empty; string customFieldID = String.Empty; string customFieldValue = String.Empty; bool isDataReferenceField = false; if (columnArray != null && columnArray.Length > 0) { string filterCiteria = string.Empty; if (RadioButtonFilterOn.Checked) { Session["IsReportOnDateRange"] = false; string[] arrFilterValue = DropDownListFilterOn.SelectedValue.Split("^".ToCharArray()); Session["FilterOn"] = DropDownListFilterOn.SelectedValue; string filterValue = GetFilterValue(); #region Display Serial Number Details [if filter is on Serial Number] PanelSerialKeyDetails.Visible = false; if (DropDownListFilterOn.SelectedValue.IndexOf("REG_SERIAL_KEY") > 0) { DisplayLicenseDetails(); } #endregion isDataReferenceField = bool.Parse(arrFilterValue[3].ToLower()); if (arrFilterValue[0] == "True") { systemFieldID = arrFilterValue[1]; systemFieldValue = filterValue; //if (!string.IsNullOrEmpty(filterValue)) //{ // filterCiteria += " and [" + arrFilterValue[1] + "] like N'" + filterValue.Replace("'", "''") + "'"; //} //else //{ // filterCiteria += " and ([" + arrFilterValue[1] + "] ='' or [" + arrFilterValue[1] + "] is null)"; //} } else { customFieldID = arrFilterValue[2]; customFieldValue = filterValue; /* * if (!string.IsNullOrEmpty(filterValue)) * { * customFieldFilter += " [" + arrFilterValue[1] + "] like N'" + filterValue.Replace("'", "''") + "'"; * } * else * { * customFieldFilter += " ([" + arrFilterValue[1] + "] = '' or [" + arrFilterValue[1] + "] is null)"; * }*/ } } if (RadioButtonDateRange.Checked) { PanelSerialKeyDetails.Visible = false; //filterCiteria += " and ( REC_DATE >= '" + TextBoxDateFrom.Text + " 00:00:00' and REC_DATE <='" + TextBoxDateTo.Text + " 23:59:59')"; filterCiteria = " ( REC_DATE BETWEEN '" + TextBoxDateFrom.Text + " 00:00:00' and '" + TextBoxDateTo.Text + " 23:59:59')"; Session["IsReportOnDateRange"] = true; Session["FilterFrom"] = TextBoxDateFrom.Text; Session["FilterTo"] = TextBoxDateTo.Text; } int pageSize = 0; if (RadioButtonCSV.Checked == true) { pageSize = int.Parse(DataProvider.GetDBConfigValue("REPORT_CSV_MAX_RECORDS"), CultureInfo.CurrentCulture); } if (RadioButtonOnscreen.Checked == true) { pageSize = int.Parse(DataProvider.GetDBConfigValue("REPORT_ONSCREEN_MAX_RECORDS"), CultureInfo.CurrentCulture); } DataSet dsRegistrationDetails = DataReporter.GetRegistrationDetails(Session["SelectedProduct"].ToString(), 1, pageSize, "REC_ID desc", isDataReferenceField, systemFieldID, systemFieldValue, customFieldID, customFieldValue, filterCiteria); DataTable dtRegistrationDetails = dsRegistrationDetails.Tables[0]; int MaxDisplayCount = int.Parse(DataProvider.GetDBConfigValue("REPORT_ONSCREEN_MAX_RECORDS"), CultureInfo.CurrentCulture); LabelResultCount.Text = dtRegistrationDetails.Rows.Count.ToString(CultureInfo.InvariantCulture) + Resources.Labels.Space + Resources.Labels.RecordsFound; LabelResultCount.ForeColor = Color.Blue; if (RadioButtonCSV.Checked == true || dtRegistrationDetails.Rows.Count > MaxDisplayCount) { Session["ReportMode"] = "CSV"; #region Write Result to CSV File RadioButtonCSV.Checked = true; PanelRegistrationDetails.Visible = false; ImageButtonPrint.Visible = false; if (dtRegistrationDetails.Rows.Count > 0) { // Create CSV file in TempReports. string reportFileName = Server.MapPath("..") + "/TempReports/" + Session["UserID"].ToString() + "_" + Session.SessionID + ".csv"; StreamWriter swReportFile = File.CreateText(reportFileName); // Write filter Criteria to CSV string filterCriteria = GetFilterCriteria(); swReportFile.WriteLine("Filter Criteria: " + filterCriteria); swReportFile.WriteLine(""); // Write PanelSerialKeyDetails to CSV if (PanelSerialKeyDetails.Visible) { swReportFile.WriteLine("Serial Number Details"); swReportFile.WriteLine("Serial Number " + "," + LabelSerialKey.Text); swReportFile.WriteLine("Total Licenses " + "," + LabelTotalLicenses.Text); swReportFile.WriteLine("Used Licenses " + "," + LabelUsedLicenses.Text); swReportFile.WriteLine("Remaining Licenses " + "," + LabelRemainingLicenses.Text); swReportFile.WriteLine(""); swReportFile.WriteLine("Registration Details"); swReportFile.WriteLine(""); } WriteColumnHeaders(columnArray, dsRegistrationDetails.Tables[1], swReportFile); swReportFile.WriteLine(""); for (int rowCount = 0; rowCount < dtRegistrationDetails.Rows.Count; rowCount++) { string data = ""; for (int col = 0; col < columnArray.Length; col++) { data = dtRegistrationDetails.Rows[rowCount][columnArray[col]].ToString(); data = "\"" + data.Replace("\"", "\"\"") + "\""; if (col < columnArray.Length - 1) { swReportFile.Write(data + ","); } else { swReportFile.WriteLine(data); } } } swReportFile.Close(); string reportUrl = "<a href='../TempReports/" + Session["UserID"].ToString() + "_" + Session.SessionID + ".csv'>"; StringBuilder successMessage = new StringBuilder(); successMessage.Append(Resources.SuccessMessages.ReportGeneratedSuccessfully); successMessage.Append(Resources.Labels.FullStop); successMessage.Append(Resources.Labels.Space); successMessage.Append(reportUrl); successMessage.Append(Resources.Labels.ClickHere); successMessage.Append(Resources.Labels.Space); successMessage.Append(Resources.Labels.ToDownload); successMessage.Append(Resources.Labels.FullStop); LabelQueryResult.Text = successMessage.ToString(); LabelQueryResult.ForeColor = Color.Green; } #endregion } else if (RadioButtonOnscreen.Checked) { Session["ReportMode"] = "Onscreen"; RadioButtonOnscreen.Checked = true; if (dtRegistrationDetails.Rows.Count > 0) { PanelRegistrationDetails.Visible = true; ImageButtonPrint.Visible = true; DisplayColumnHeaders(columnArray, dsRegistrationDetails.Tables[1]); #region Display Result on Screen for (int rowCount = 0; rowCount < dtRegistrationDetails.Rows.Count; rowCount++) { TableRow tr = new TableRow(); tr.BackColor = Color.White; bool isFirstColumn = true; foreach (string coulumnName in columnArray) { try { TableCell td = new TableCell(); if (isFirstColumn) { StringBuilder sbLink = new StringBuilder("<a href='../DataCapture/ManageRegistration.aspx?source=../Reports/ReportIndex.aspx?refererpager=Reports&action=update&REC_ID=" + dtRegistrationDetails.Rows[rowCount]["REC_ID"].ToString() + "&pid=" + Session["SelectedProduct"].ToString() + "' style='text-decoration:underline'>" + dtRegistrationDetails.Rows[rowCount][coulumnName.Trim()].ToString() + "</a>"); td.Text = sbLink.ToString(); } else if (coulumnName.Equals("REG_SERIAL_KEY") == true) { isFirstColumn = true; StringBuilder sbLink = new StringBuilder("<a href='../Views/SerialKeys.aspx?" + Session.SessionID + "=" + dtRegistrationDetails.Rows[rowCount]["REG_SERIAL_KEY"].ToString() + "' style='text-decoration:underline'>" + dtRegistrationDetails.Rows[rowCount][coulumnName.Trim()].ToString() + "</a>"); td.Text = sbLink.ToString(); } else { td.Text = dtRegistrationDetails.Rows[rowCount][coulumnName.Trim()].ToString(); } td.Wrap = false; tr.Cells.Add(td); isFirstColumn = false; } catch (DataException) { } } TableRegistrationDetails.Rows.Add(tr); } } #endregion } } }