Exemple #1
0
        public ActionResult DoPublishingProcessing(ManageExcelUploadsAndEtlViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new SitkaDisplayErrorException("Not expecting model state to be bad; not running publishing processing.");
            }

            bool     wasErrorDuringProcessing = false;
            DateTime startTime = DateTime.Now;

            try
            {
                DoPublishingSql();
                var tabularImports           = HttpRequestStorage.DatabaseEntities.TabularDataImports.ToList();
                var processedDateTime        = DateTime.Now;
                var latestImportForNortheast = TabularDataImport.GetLatestImportProcessingForGivenType(tabularImports, TabularDataImportTableType.LoaNortheast);
                var latestImportForSoutheast = TabularDataImport.GetLatestImportProcessingForGivenType(tabularImports, TabularDataImportTableType.LoaSoutheast);
                if (latestImportForSoutheast != null)
                {
                    latestImportForSoutheast.LastProcessedDate   = processedDateTime;
                    latestImportForSoutheast.LastProcessedPerson = CurrentPerson;
                }

                if (latestImportForNortheast != null)
                {
                    latestImportForNortheast.LastProcessedDate   = processedDateTime;
                    latestImportForNortheast.LastProcessedPerson = CurrentPerson;
                }
                HttpRequestStorage.DatabaseEntities.SaveChanges(CurrentPerson);
            }
            catch (Exception e)
            {
                SetInfoForDisplay($"Problem executing Publishing: {e.Message}");
                wasErrorDuringProcessing = true;
            }

            DateTime endTime              = DateTime.Now;
            var      elapsedTime          = endTime - startTime;
            string   processingTimeString = GetTaskTimeString("Publishing", elapsedTime);

            if (!wasErrorDuringProcessing)
            {
                SetMessageForDisplay($"Publishing Processing completed Successfully.<br/>{processingTimeString}");
            }
            else
            {
                // Apparently at the moment we can only have one error/warning, so since I want TWO messages, resorting to
                // an error and a warning.
                SetErrorForDisplay($"Publishing Processing had problems.<br/>{processingTimeString}");
            }
            return(RedirectToAction(new SitkaRoute <ExcelUploadController>(x => x.ManageExcelUploadsAndEtl())));
        }
Exemple #2
0
        private ViewResult ViewManageExcelUploadsAndEtl_Impl()
        {
            var firmaPage       = FirmaPage.GetFirmaPageByPageType(FirmaPageType.UploadLoaTabularDataExcel);
            var loaUploadFormID = GenerateUploadLoaFileUploadFormId();

            var newLoaNortheastExcelFileUpload = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.ImportLoaNortheastExcelFile());

            var newLoaSoutheastExcelFileUpload = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.ImportLoaSoutheastExcelFile());

            var doPublishingProcessingPostUrl = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.DoPublishingProcessing(null));

            var listOfTabularDataImports = HttpRequestStorage.DatabaseEntities.TabularDataImports.ToList();
            var viewData = new ManageExcelUploadsAndEtlViewData(CurrentPerson,
                                                                firmaPage,
                                                                newLoaNortheastExcelFileUpload,
                                                                newLoaSoutheastExcelFileUpload,
                                                                doPublishingProcessingPostUrl,
                                                                loaUploadFormID,
                                                                listOfTabularDataImports);
            var viewModel = new ManageExcelUploadsAndEtlViewModel();

            return(RazorView <ManageExcelUploadsAndEtl, ManageExcelUploadsAndEtlViewData, ManageExcelUploadsAndEtlViewModel>(viewData, viewModel));
        }
        private ViewResult ViewManageExcelUploadsAndEtl_Impl()
        {
            var firmaPage = FirmaPageTypeEnum.UploadBudgetAndInvoiceExcel.GetFirmaPage();

            var fbmsUploadFormID      = GenerateUploadFbmsFileUploadFormId();
            var pnBudgetsUploadFormID = GeneratePnBudgetsUploadFormID();

            var newFbmsExcelFileUploadUrl = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.ImportFbmsExcelFile());

            var newPnBudgetExcelFileUploadUrl = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.ImportPnBudgetsExcelFile());

            var doPublishingProcessingPostUrl = SitkaRoute <ExcelUploadController> .BuildUrlFromExpression(x => x.DoPublishingProcessing(null));

            var viewData = new ManageExcelUploadsAndEtlViewData(CurrentFirmaSession,
                                                                firmaPage,
                                                                newFbmsExcelFileUploadUrl,
                                                                newPnBudgetExcelFileUploadUrl,
                                                                doPublishingProcessingPostUrl,
                                                                fbmsUploadFormID,
                                                                pnBudgetsUploadFormID);
            var viewModel = new ManageExcelUploadsAndEtlViewModel();

            return(RazorView <ManageExcelUploadsAndEtl, ManageExcelUploadsAndEtlViewData, ManageExcelUploadsAndEtlViewModel>(viewData, viewModel));
        }
        public ActionResult DoPublishingProcessing(ManageExcelUploadsAndEtlViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new SitkaDisplayErrorException("Not expecting model state to be bad; not running publishing processing.");
            }

            bool     wasErrorDuringProcessing = false;
            DateTime startTime = DateTime.Now;

            try
            {
                DoPublishingSql(Logger);

                //int blah = 2;
                //if (1 == blah-1)
                //{
                //    //throw new Exception("Fake exception to test ideas..");
                //}

                // If we get this far, we've succeeded.
                // Log last import as successful.
                var processedDateTime                 = DateTime.Now;
                var latestImportProcessingForFbms     = ImpProcessing.GetLatestImportProcessingForGivenType(HttpRequestStorage.DatabaseEntities, ImpProcessingTableType.FBMS);
                var latestImportProcessingForPnBudget = ImpProcessing.GetLatestImportProcessingForGivenType(HttpRequestStorage.DatabaseEntities, ImpProcessingTableType.PNBudget);
                if (latestImportProcessingForFbms == null || latestImportProcessingForPnBudget == null)
                {
                    // We don't expect this to really happen once things are running smoothly, but in the short
                    // term I want to know about it.
                    SetErrorForDisplay($"Could not find processing records for last upload (ImpProcessing)");
                }
                else
                {
                    latestImportProcessingForFbms.LastProcessedDate       = processedDateTime;
                    latestImportProcessingForFbms.LastProcessedPerson     = CurrentFirmaSession.Person;
                    latestImportProcessingForPnBudget.LastProcessedDate   = processedDateTime;
                    latestImportProcessingForPnBudget.LastProcessedPerson = CurrentFirmaSession.Person;
                    HttpRequestStorage.DatabaseEntities.SaveChanges(this.CurrentFirmaSession);
                }
            }
            catch (Exception e)
            {
                SetErrorForDisplay($"Problem executing Publishing: {e.Message}");
                wasErrorDuringProcessing = true;
            }

            ProjectTaxonomyLeafTest.CallAllTaxonomyLeavesForAllProjectsToCheckForCrashes();

            DateTime endTime              = DateTime.Now;
            var      elapsedTime          = endTime - startTime;
            string   processingTimeString = GetTaskTimeString("Publishing", elapsedTime);

            if (!wasErrorDuringProcessing)
            {
                SetMessageForDisplay($"Publishing Processing completed Successfully.<br/>{processingTimeString}");
            }
            else
            {
                // Apparently at the moment we can only have one error/warning, so since I want TWO messages, resorting to
                // an error and a warning.
                SetWarningForDisplay($"Publishing Processing had problems.<br/>{processingTimeString}");
            }
            return(RedirectToAction(new SitkaRoute <ExcelUploadController>(x => x.ManageExcelUploadsAndEtl())));
        }