Exemplo n.º 1
0
        private DataTable CreateApprovalReportDataTable(ApprovalReportExportRequestModel approvalReportExportRequest)
        {
            var columns = typeof(ApprovalReportExportDataModel).GetProperties()
                          .SelectMany(item => item.GetCustomAttributes(typeof(ExcelColumnAttribute), false))
                          .Select(item => (ExcelColumnAttribute)item);

            columns = ApplyCollumnFilters(columns: columns, isGrossCost: approvalReportExportRequest.IsGrossCost,
                                          isNetCost: approvalReportExportRequest.IsNetCost, isIncludeNonWorking: approvalReportExportRequest.IsIncludeNonWorking,
                                          isIncludeFees: approvalReportExportRequest.IsIncludeFees);

            var dataTable = new DataTable();

            dataTable.Columns.AddRange(columns.Select(item => new DataColumn(item.Header)).ToArray());

            FillDataTable(dataTable, approvalReportExportRequest);

            return(dataTable);
        }
Exemplo n.º 2
0
        private void FillDataTable(DataTable dataTable, ApprovalReportExportRequestModel approvalReportExportRequest)
        {
            var columns         = dataTable.Columns;
            var approvalReports = approvalReportExportRequest.ApprovalReports;

            for (var i = 0; i < approvalReports.Count(); i++)
            {
                var dataRow             = dataTable.NewRow();
                var countDeletedColumns = 0;

                dataRow[columns[(int)ApprovalReportElement.ResourceSet]]   = approvalReports[i].ResourceSet;
                dataRow[columns[(int)ApprovalReportElement.Country]]       = approvalReports[i].Country;
                dataRow[columns[(int)ApprovalReportElement.Client]]        = approvalReports[i].Client;
                dataRow[columns[(int)ApprovalReportElement.Product]]       = approvalReports[i].Product;
                dataRow[columns[(int)ApprovalReportElement.NameVersion]]   = approvalReports[i].NameVersion;
                dataRow[columns[(int)ApprovalReportElement.SubmittedBy]]   = approvalReports[i].SubmittedBy;
                dataRow[columns[(int)ApprovalReportElement.DateSubmitted]] = approvalReports[i].DateSubmitted.ToString("MM/dd/yyyy hh:mm");
                dataRow[columns[(int)ApprovalReportElement.StatusStep]]    = approvalReports[i].StatusStep;
                dataRow[columns[(int)ApprovalReportElement.DateCompleted]] = approvalReports[i].DateCompleted?.ToString("MM/dd/yyyy hh:mm");
                dataRow[columns[(int)ApprovalReportElement.Days]]          = approvalReports[i].Days;
                dataRow[columns[(int)ApprovalReportElement.Action]]        = approvalReports[i].Action;
                dataRow[columns[(int)ApprovalReportElement.Comments]]      = approvalReports[i].Comments;
                dataRow[columns[(int)ApprovalReportElement.Currency]]      = approvalReports[i].Currency;

                if (approvalReportExportRequest.IsGrossCost)
                {
                    dataRow[columns[(int)ApprovalReportElement.GrossCost]] = approvalReports[i].GrossCost;
                }
                else
                {
                    countDeletedColumns++;
                }

                if (approvalReportExportRequest.IsNetCost)
                {
                    dataRow[columns[(int)ApprovalReportElement.NetCost - countDeletedColumns]] = approvalReports[i].NetCost;
                }
                else
                {
                    countDeletedColumns++;
                }

                dataRow[columns[(int)ApprovalReportElement.WorkingCost - countDeletedColumns]] = approvalReports[i].WorkingCost;

                if (approvalReportExportRequest.IsIncludeNonWorking)
                {
                    dataRow[columns[(int)ApprovalReportElement.NonWorkingCosts - countDeletedColumns]] = approvalReports[i].NonWorkingCosts;
                }
                else
                {
                    countDeletedColumns++;
                }

                if (approvalReportExportRequest.IsIncludeFees)
                {
                    dataRow[columns[(int)ApprovalReportElement.Fees - countDeletedColumns]] = approvalReports[i].Fees;
                }
                else
                {
                    countDeletedColumns++;
                }

                dataRow[columns[(int)ApprovalReportElement.IsEvenGroup - countDeletedColumns]]    = approvalReports[i].IsEvenGroup;
                dataRow[columns[(int)ApprovalReportElement.CurrencySymbol - countDeletedColumns]] = approvalReports[i].CurrencySymbol;

                dataTable.Rows.Add(dataRow);
            }
        }