Пример #1
0
        public async Task <OperationDataResult <FileStreamModel> > GenerateSingleListResults(
            ItemListCasesPnRequestModel requestModel)
        {
            string excelFile = null;

            try
            {
                var reportDataResult = await GetTableData(requestModel);

                if (reportDataResult == null)
                {
                    return(new OperationDataResult <FileStreamModel>(false, "ERROR"));
                }

                var itemList = await _dbContext.ItemLists.SingleOrDefaultAsync(x => x.Id == requestModel.ListId);

                excelFile = _excelService.CopyTemplateForNewAccount("report_template_lists");
                var writeResult = _excelService.WriteTableToExcel(itemList.Name, itemList.Description,
                                                                  reportDataResult,
                                                                  requestModel,
                                                                  excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                var result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                //_logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _itemsPlanningLocalizationService.GetString("ErrorWhileGeneratingReportFile")));
            }
        }
        public async Task <OperationDataResult <FileStreamModel> > GenerateReportFile(GenerateReportModel model)
        {
            string excelFile = null;

            try
            {
                OperationDataResult <ReportModel> reportDataResult = await GenerateReport(model);

                if (!reportDataResult.Success)
                {
                    return(new OperationDataResult <FileStreamModel>(false, reportDataResult.Message));
                }

                excelFile = _excelService.CopyTemplateForNewAccount("report_template");
                bool writeResult = _excelService.WriteRecordsExportModelsToExcelFile(
                    reportDataResult.Model,
                    model,
                    excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                FileStreamModel result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _itemsPlanningLocalizationService.GetString("ErrorWhileGeneratingReportFile")));
            }
        }
Пример #3
0
        public async Task <OperationDataResult <FileStreamModel> > GenerateFile(
            DashboardItemExportRequestModel requestModel)
        {
            string excelFile = null;

            try
            {
                var reportDataResult = await _dashboardService
                                       .GetSingleForView(
                    requestModel.DashboardId,
                    true,
                    requestModel.ItemId);

                if (!reportDataResult.Success)
                {
                    return(new OperationDataResult <FileStreamModel>(false, reportDataResult.Message));
                }

                var dashboardItemView = reportDataResult.Model.Items.FirstOrDefault();

                if (dashboardItemView == null)
                {
                    return(new OperationDataResult <FileStreamModel>(
                               false,
                               _localizationService.GetString("DashboardItemNotFound")));
                }

                var interviews = new List <InterviewsExportModel>();
                foreach (var textQuestionData in dashboardItemView.TextQuestionData)
                {
                    var interviewsExportModel = new InterviewsExportModel
                    {
                        Id             = textQuestionData.Id,
                        Comments       = textQuestionData.Commentary,
                        Tag            = textQuestionData.LocationName,
                        Date           = textQuestionData.Date,
                        Question       = dashboardItemView.FirstQuestionName,
                        FilterQuestion = dashboardItemView.FilterQuestionName,
                        FilterAnswer   = dashboardItemView.FilterAnswerName,
                    };
                    interviews.Add(interviewsExportModel);
                }

                excelFile = _interviewsExcelService.CopyTemplateForNewAccount("interviews-template");
                bool writeResult = _interviewsExcelService.WriteInterviewsExportToExcelFile(
                    interviews,
                    excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                var result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _localizationService.GetString("ErrorWhileExportingInterviews")));
            }
        }
Пример #4
0
        public async Task <OperationDataResult <FileStreamModel> > GenerateReportFile(GenerateReportModel model)
        {
            string excelFile = null;

            try
            {
                OperationDataResult <ReportModel> reportDataResult = await GenerateReport(model);

                if (!reportDataResult.Success)
                {
                    return(new OperationDataResult <FileStreamModel>(false, reportDataResult.Message));
                }

                string outerResourceName = "";
                string innerResourceName = "";
                try
                {
                    outerResourceName = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:OuterResourceName")?.Value;
                    innerResourceName = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:InnerResourceName")?.Value;
                }
                catch
                {
                }

                switch (reportDataResult.Model.Relationship)
                {
                case ReportRelationshipType.Employee:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee");
                    break;

                case ReportRelationshipType.InnerResource:
                    reportDataResult.Model.HumanReadableName = innerResourceName;
                    break;

                case ReportRelationshipType.OuterResource:
                    reportDataResult.Model.HumanReadableName = outerResourceName;
                    break;

                case ReportRelationshipType.EmployeeInnerResource:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee") + "-" + innerResourceName;
                    break;

                case ReportRelationshipType.EmployeeOuterResource:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee") + "-" + outerResourceName;
                    break;

                case ReportRelationshipType.EmployeeTotal:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee" + "-Total");
                    break;

                case ReportRelationshipType.OuterInnerResource:
                    reportDataResult.Model.HumanReadableName =
                        $"{outerResourceName} {innerResourceName}";
                    break;

                case ReportRelationshipType.InnerOuterResource:
                    reportDataResult.Model.HumanReadableName =
                        $"{innerResourceName} {outerResourceName}";
                    break;
                }

                excelFile = _excelService.CopyTemplateForNewAccount("report_template");
                bool writeResult = _excelService.WriteRecordsExportModelsToExcelFile(
                    reportDataResult.Model,
                    model,
                    excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                FileStreamModel result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _outerInnerResourceLocalizationService.GetString("ErrorWhileGeneratingReportFile")));
            }
        }