示例#1
0
        /// <summary>
        ///   BURO = Batch Update Review Outcomes
        /// </summary>
        /// <returns></returns>
        public BuroViewModel Execute(BuroViewModel vm
                                     , IUploadRepository uploadRepository
                                     , IQuestionnaireRepository questionnaireRepository
                                     , IAuditService auditService
                                     , IReviewRepository reviewRepository)
        {
            var uploadList = uploadRepository.GetAll();

            foreach (var upload in uploadList)
            {
                if (upload.AcceptedFlag)
                {
                    continue;                                       //  once upload is accepted its over
                }
                var uploadId   = upload.UploadId;
                var reviewList = reviewRepository.GetAllByUploadId(uploadId);
                foreach (var review in reviewList)
                {
                    vm.ReviewsRead++;
                    IsDirty = false;
                    //  get the questionaire data
                    var q = questionnaireRepository.GetReviewQuestionnaireByReviewId(review.ReviewId);

                    if (q == null)
                    {
                        continue;
                    }

                    var oldVals = review;
                    CheckForQuestionaireAssessmentOutcome(q, review);
                    CheckForQuestionaireRecoveryReason(q, review);
                    CheckForQuestionaireAssessmentAction(q, review);
                    CheckForQuestionaireFinalOutcome(q, review);

                    if (!IsDirty)
                    {
                        continue;
                    }

                    var errors = new List <IntegrityError>();
                    ApplyReviewModelValidations(review, errors);
                    if (errors.Count > 0)
                    {
                        AuditErrors(auditService, errors);
                        vm.ValidationErrors += errors.Count;
                    }
                    else
                    {
                        review.UpdatedBy = BuroUser;
                        review.UpdatedOn = DateTime.Now;
                        reviewRepository.Update(review);
                        auditService.AuditActivity(UpdateMessage(review, oldVals), BuroUser);
                        vm.ReviewsUpdated++;
                    }
                }
            }
            return(vm);
        }
示例#2
0
 private static void AuditErrors(IAuditService auditService, IEnumerable <IntegrityError> errors)
 {
     foreach (var integrityError in errors)
     {
         var ex = new ApplicationException(integrityError.ToString());
         Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex));
         auditService.AuditActivity(integrityError.ToString(), BuroUser);
     }
 }
示例#3
0
        private static void CheckAppSettings(IAuditService auditService)
        {
            var          appSettings = ConfigurationManager.AppSettings;
            const string fmt         = "{0,-35} = {1}";

            for (var i = 0; i < appSettings.Count; i++)
            {
                auditService.AuditActivity(string.Format(fmt, appSettings.GetKey(i), appSettings[i]),
                                           ConfigDiagnostics);
            }
            var connectionStrings = ConfigurationManager.ConnectionStrings;

            foreach (ConnectionStringSettings connection in connectionStrings)
            {
                var connectionString = connection.ConnectionString;
                auditService.AuditActivity(string.Format(fmt, connection.Name, connectionString), ConfigDiagnostics);
            }
        }
示例#4
0
 public void Audit(IAuditService auditService)
 {
     auditService.AuditActivity(string.Format("{0}:{1}", "OrgCode", OrgCode), AuditUser);
     auditService.AuditActivity(string.Format("{0}:{1}", "ESA", EsaCode), AuditUser);
     auditService.AuditActivity(string.Format("{0}:{1}", "ClaimType", ClaimType), AuditUser);
     auditService.AuditActivity(string.Format("{0}:{1}", "Site", SiteCode), AuditUser);
     auditService.AuditActivity(string.Format("{0}:{1}", "From", FromClaimDate), AuditUser);
     auditService.AuditActivity(string.Format("{0}:{1}", "To", ToClaimDate), AuditUser);
 }
示例#5
0
        private static void CheckDiskSpace(IAuditService auditService)
        {
            var vm = DiskSpaceCheck();

            auditService.AuditActivity(string.Format("There are {0} disks connected", vm.Disks.Count), DiskDiagnostics);
            foreach (var disk in vm.Disks)
            {
                auditService.AuditActivity(disk.Name, DiskDiagnostics);
                if (!disk.IsAvailable)
                {
                    continue;
                }
                auditService.AuditActivity(disk.DriveType, DiskDiagnostics);
                auditService.AuditActivity(disk.AvailableFreeSpace, DiskDiagnostics);
                auditService.AuditActivity(disk.SpaceUsed, DiskDiagnostics);
                auditService.AuditActivity(disk.PercentFreeSpace, DiskDiagnostics);
            }
        }