private static string GenerateAboutData(PatControl control)
        {
            var label = new[] {
                "Last Batch Run",
                "Last Compliance Run",
                "Project Completion",
                "Compliance Indicator",
                "Projects",
                "Uploads/Samples",
                "Review Count"
            };

            var data = new[] {
                AppHelper.ShortDateAndTime(control.LastBatchRun),
                AppHelper.ShortDateAndTime(control.LastComplianceRun),
                AppHelper.FormatPercentage(control.ProjectCompletion),
                AppHelper.FormatDecimal(control.TotalComplianceIndicator),
                AppHelper.FormatInteger(control.ProjectCount),
                AppHelper.FormatInteger(control.SampleCount),
                AppHelper.FormatInteger(control.ReviewCount)
            };

            var html = AppHelper.TableFromArray(label, data, "System Details", showEmpty: false);

            return(html);
        }
        /// <summary>
        /// Updates the Control record
        /// </summary>
        /// <param name="entity">The entity.</param>
        public void Update(PatControl entity)
        {
            var patControl = entity;

            Debug.Assert(patControl != null, "control != null");

            using (var connection = new SqlConnection(DbConnection))
            {
                using (var command = new SqlCommand("PaControlUpdate", connection))
                {
                    var sqlParams = new List <SqlParameter>();

                    SqlHelper.AddReturnPara("@return_value", sqlParams);

                    if (patControl.ControlId > 0)
                    {
                        SqlHelper.AddIntPara(patControl.ControlId, "@Id", sqlParams);
                    }

                    SqlHelper.AddIntPara(patControl.ProjectCount, "@ProjectCount", sqlParams);
                    SqlHelper.AddIntPara(patControl.SampleCount, "@SampleCount", sqlParams);
                    SqlHelper.AddIntPara(patControl.ReviewCount, "@ReviewCount", sqlParams);

                    SqlHelper.AddDecimalPara(patControl.ProjectCompletion, 3, "@ProjectCompletion", sqlParams);
                    SqlHelper.AddDecimalPara(patControl.TotalComplianceIndicator, 3, "@TotalComplianceIndicator", sqlParams);

                    SqlHelper.AddBitPara(patControl.SystemAvailable, "@SystemAvailable", sqlParams);

                    if (patControl.LastBatchRun != new DateTime(1, 1, 1))
                    {
                        SqlHelper.AddDatePara(patControl.LastBatchRun, "@LastBatchRun", sqlParams);
                    }
                    if (patControl.LastComplianceRun != new DateTime(1, 1, 1))
                    {
                        SqlHelper.AddDatePara(patControl.LastComplianceRun, "@LastComplianceRun", sqlParams);
                    }

                    SqlHelper.AddVarcharPara(patControl.UpdatedBy, "@UpdatedBy", sqlParams);

                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddRange(sqlParams.ToArray());

                    connection.Open();

                    command.ExecuteNonQuery();
                }
            }
        }
        private static void AddControlToList(ICollection <PatControl> list, IDataRecord rdr)
        {
            var record = new PatControl
            {
                ControlId                = (int)rdr["ControlId"],
                SystemAvailable          = rdr["SystemAvailable"] as bool? ?? default(bool),
                ProjectCount             = (int)rdr["ProjectCount"],
                SampleCount              = (int)rdr["SampleCount"],
                ReviewCount              = (int)rdr["ReviewCount"],
                ProjectCompletion        = rdr["ProjectCompletion"] as decimal? ?? default(decimal),
                TotalComplianceIndicator = rdr["TotalComplianceIndicator"] as decimal? ?? default(decimal),
                LastBatchRun             = rdr["LastBatchRun"] as DateTime? ?? default(DateTime),
                LastComplianceRun        = rdr["LastComplianceRun"] as DateTime? ?? default(DateTime)
            };

            list.Add(record);
        }
Exemple #4
0
        private static void BatchUpdateReviewOutcomes(IPatService patService
                                                      , string how
                                                      , PatControl control)
        {
            var    lastBatchRun = control.LastBatchRun;
            string auditMsg;

            string why;

            if (ReadyToGenerateAgain(lastBatchRun, how, out why))
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                var vm   = new BuroViewModel();
                var buro = new BuroProcess();
                vm = buro.Execute(vm
                                  , patService.GetUploadRepository()
                                  , patService.GetQuestionaireRepository()
                                  , patService.GetAuditService()
                                  , patService.GetReviewRepository()
                                  );

                control.LastBatchRun = DateTime.Now;
                control.UpdatedBy    = BatchUser;

                var timeElapsed = AppHelper.StopTheWatch(stopwatch);

                auditMsg = string.Format("BURO complete: {0} Reviews checked; {1} updated {3} errors in {2}",
                                         vm.ReviewsRead, vm.ReviewsUpdated, timeElapsed, vm.ValidationErrors);
            }
            else
            {
                auditMsg = string.Format("BURO skipped for now ({1}): last Run  {0}", lastBatchRun, why);
            }

            patService.SaveActivity(CreateAuditRecord(auditMsg, "BURO"));
        }
Exemple #5
0
        private static void UpdateComplianceIndicators(IPatService patService, string how, PatControl control)
        {
            var    lastComplianceRun = control.LastComplianceRun;
            string auditMsg;
            string why;

            if (ReadyToGenerateAgain(lastComplianceRun, how, out why))
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                var ciViewModel = new ComplianceIndicatorsViewModel();
                //  Options currently required by PAM
                var cigen = new ComplianceIndicators();
                ciViewModel = cigen.Generate(ciViewModel);

                control.LastComplianceRun        = DateTime.Now;
                control.UpdatedBy                = BatchUser;
                control.ReviewCount              = ciViewModel.ReviewsRead;
                control.ProjectCount             = ciViewModel.ProjectsRead;
                control.ProjectCompletion        = AppHelper.Percent(ciViewModel.CompletedProjects, ciViewModel.ProjectsRead);
                control.SampleCount              = ciViewModel.SamplesRead;
                control.TotalComplianceIndicator = AppHelper.Average(ciViewModel.TotalCompliancePoints, ciViewModel.ReviewsRead);

                var timeElapsed = AppHelper.StopTheWatch(stopwatch);

                auditMsg = string.Format("CI Generation complete:  {0} indicators generated in {1}",
                                         ciViewModel.IndicatorsGenerated, timeElapsed);
            }
            else
            {
                auditMsg = string.Format("CI Generation skipped ({1}) for now: last Run  {0}", lastComplianceRun, why);
            }

            patService.SaveActivity(CreateAuditRecord(auditMsg, "CIGEN"));
        }