public AuditFuneralNotice(FuneralNotice notice, AuditState newState) : this()
        {
            if (notice.Id == 0)
            {
                if(newState != AuditState.Creating && newState != AuditState.EmptyIdPermavita)
                {
                    throw new Exception("Sanity check. Notice ID=0, but state is: " + newState);
                }
            }

            this.FuneraNoticeId = notice.Id;
            this.MemorialId = notice.MemorialId;
            this.CedarCode = notice.CedarCode;
            this.BranchId = notice.BranchId;
            this.CreateDate = notice.CreateDate;
            this.ModifiedDate = notice.ModifiedDate;
            this.KnownAs = notice.KnownAs;
            this.OnlineMemorialUrl = notice.OnlineMemorialUrl;
            this.DeceasedImageUrl = notice.DeceasedImageUrl;
            this.ParentBranchId = notice.ParentBranchId;
            this.Surname = notice.Surname;
            this.FirstNames = notice.FirstNames;
            this.DateOfDeath = notice.DateOfDeath;
            this.DateOfFuneral = notice.DateOfFuneral;
            this.Obituary = notice.Obituary;
            this.Source = notice.Source;
            this.ShowDeceasedImage = notice.ShowDeceasedImage;
            this.RemoveNotice = notice.RemoveNotice;

            AuditState = newState;
        }
示例#2
0
        void InitializeControlState()
        {
            if (PmsService.Instance.CurrentUser.Group.Name == "检测")
            {
                // BindMeasurementControl();

                _ExecuteReportControlState = new ExecuteState();
                _ExecuteReportControlState.Enter(this);
            }
            if (PmsService.Instance.CurrentUser.Group.Name == "评审")
            {
                //BindMeasurementControl();
                //BindAuditControl();
                _ExecuteReportControlState = new AuditState();
                _ExecuteReportControlState.Enter(this);
            }
            if (PmsService.Instance.CurrentUser.Group.Name == "审批")
            {
                // BindMeasurementControl();
                //BindAuditControl();
                //BindApproveControl();

                _ExecuteReportControlState = new ApproveState();
                _ExecuteReportControlState.Enter(this);
            }
        }
示例#3
0
        private void OnPartTask(object i_Obj)
        {
            BeginInvoke(new MessageHanlderDelegate(i_O =>
            {
                var task = i_O as Task;
                if (task == null)
                {
                    return;
                }
                _ExecuteReportControlState = new ExecuteState();
                _ExecuteReportControlState.Enter(this);
                _Task             = task;
                _ExecutionManager = new ExecutionManager(_Task);
                _CurrentTemplate  = task.Part;
                if (_CurrentTemplate == null)
                {
                    return;
                }
                Mediator.Mediator.Instance.NotifyColleagues(Execution.TaskStarted, task);

                CreateReportModel();

                BindingTextControls();
                RefreshCommentControls();
                if (PmsService.Instance.CurrentUser.Group.Name == "检测")
                {
                    LblTester.Text             = PmsService.Instance.CurrentUser.Name;
                    LblTestDate.Text           = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new ExecuteState();
                    _ExecuteReportControlState.Enter(this);
                }
                if (PmsService.Instance.CurrentUser.Group.Name == "评审")
                {
                    BindMeasurementControl();
                    LblAuditor.Text            = PmsService.Instance.CurrentUser.Name;
                    LblAuditDate.Text          = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new AuditState();
                    _ExecuteReportControlState.Enter(this);
                }
                if (PmsService.Instance.CurrentUser.Group.Name == "审批")
                {
                    BindMeasurementControl();
                    BindAuditControl();
                    LblApprover.Text           = PmsService.Instance.CurrentUser.Name;
                    LblApproveDate.Text        = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new ApproveState();
                    _ExecuteReportControlState.Enter(this);
                }
            }), i_Obj);
        }
        public AuditState Update(AuditState updateAuditState)
        {
            using (var scope = _serviceProvider.CreateScope())
            {
                var _mapper = scope.ServiceProvider.GetService(typeof(IMapper)) as IMapper;
                var _ctx    = scope.ServiceProvider.GetService(typeof(SQLHoshinCoreContext)) as SQLHoshinCoreContext;

                AuditStates auditStateRetriver = ValidateDescriptionAuditState(_ctx, _mapper, updateAuditState);
                if (auditStateRetriver is null)
                {
                    return(null);
                }
                _ctx.AuditStates.Update(auditStateRetriver);
                _ctx.SaveChanges();
                return(_mapper.Map <AuditStates, AuditState>(auditStateRetriver));
            }
        }
示例#5
0
        public void Log(FuneralNotice notice, AuditState newState, string error = null)
        {
            notice = notice ?? CreateEmptyNotice(); 
            var audit = new AuditFuneralNotice(notice, newState) {Error = error};

            if (CanLogToDB(newState))
            {
                AddAuditNotice(audit);
            }

            if (error == null) //there is no exception
            {
                if (CanLogToElmah(newState))
                {
                    string json = JsonConvert.SerializeObject(audit, Formatting.Indented);
                    new Exception(json).LogToElmah();
                }
            }

            _lastAudit = audit;
        }
示例#6
0
        public bool CanLogToElmah(AuditState state)
        {
            if (_config.IsElmahLoggingEnabled)
                if (_config.StatesForElmah.Contains(state))
                return true;

            return false;
        }
示例#7
0
        private void OnPartReportSpecified(object i_Obj)
        {
            BeginInvoke(new Mediator.MessageHanlderDelegate(i_O =>
            {
                var partReport = i_O as PartReport;
                if (partReport == null)
                {
                    return;
                }
                _Task            = partReport.Task;
                _PartReport      = partReport;
                _CurrentTemplate = partReport.Task.Part;
                if (_CurrentTemplate == null)
                {
                    return;
                }

                _DataSource = new List <ExecuteDimensionEntityViewModel>();

                PmsService.Instance.PopulateDimensionsForReport(_PartReport);

                foreach (var en in _PartReport.Dimensions)
                {
                    _DataSource.Add(new ExecuteDimensionEntityViewModel(en));
                }

                if (_CurrentTemplate.Dimensions.Count > 0)
                {
                    _SeletedDimension = _PartReport.Dimensions[0];
                }

                dataGridView1.DataSource = _DataSource;
                btnCreateReport.Text     = @"保存报告";
                BindingTextControls();
                // RefreshCommentControls();
                if (PmsService.Instance.CurrentUser.Group.Name == "检测")
                {
                    BindMeasurementControl();
                    LblTester.Text             = PmsService.Instance.CurrentUser.Name;
                    LblTestDate.Text           = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new ExecuteState();
                    _ExecuteReportControlState.Enter(this);
                }
                if (PmsService.Instance.CurrentUser.Group.Name == "评审")
                {
                    BindMeasurementControl();
                    BindAuditControl();
                    LblAuditor.Text            = PmsService.Instance.CurrentUser.Name;
                    LblAuditDate.Text          = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new AuditState();
                    _ExecuteReportControlState.Enter(this);
                }
                if (PmsService.Instance.CurrentUser.Group.Name == "审批")
                {
                    BindMeasurementControl();
                    BindAuditControl();
                    BindApproveControl();
                    LblApprover.Text           = PmsService.Instance.CurrentUser.Name;
                    LblApproveDate.Text        = DateTime.Now.ToLongDateString();
                    _ExecuteReportControlState = new ApproveState();
                    _ExecuteReportControlState.Enter(this);
                }
            }), i_Obj);
        }
示例#8
0
        private void OnEnd(object sender, MailScanEventArgs e)
        {
            m_traceClient.NotifyFinished();
			lock (this)
			{
				m_state = AuditState.Stopped;
			}
        }
        private AuditStates ValidateDescriptionAuditState(SQLHoshinCoreContext _ctx, IMapper _mapper, AuditState auditState)
        {
            AuditStates auditStateValidation = _ctx.AuditStates.Where(x => (x.Name == auditState.Name || x.Code == auditState.Code || x.Color == auditState.Color) && x.AuditStateID != auditState.AuditStateID).FirstOrDefault();

            if (auditStateValidation == null)
            {
                return(_mapper.Map <AuditState, AuditStates>(auditState));
            }

            return(null);
        }
示例#10
0
		/// <summary>
		/// Pause the scanner
		/// </summary>
		public void ContinueAuditing()
		{
            if (m_fileSystemScanner != null)
            {
                m_fileSystemScanner.Continue();
            }
            
			m_state = AuditState.Started;
		}
示例#11
0
		/// <summary>
		/// Pause the scanner
		/// </summary>
		public void PauseAuditing()
		{
            if (m_fileSystemScanner != null)
            {
                m_fileSystemScanner.Pause();
            }
			m_state = AuditState.Paused;
		}
示例#12
0
        /// <summary>
        /// Stops the auditing process.  
        /// Current progress is paused; no items are lost from the Queue.
        /// </summary>
        public void StopAuditing()
        {
            lock (this)
            {
                if (m_continue)
                {
                    m_continue = false;

                    if (m_fileSystemScanner != null && m_fileSystemScanner.IsProcessing)
                    {
                        m_fileSystemScanner.Cancel();
                    }
                    m_state = AuditState.Stopped;
                }
            }
        }
示例#13
0
        /// <summary>
        /// Starts the Audit helper.  
        /// From this point on, the audit helper will process 
        /// any MailMessage objects that are encountered
        /// </summary>
        /// <remarks>Asynchronous</remarks>
        public void Audit()
        {
            lock (this)
            {
                m_traceOptions = m_traceClient.QueryOptions();  //Refreshes options between scans
				m_state = AuditState.Started;
				m_continue = true;

                if (m_fileSystemScanner != null && m_traceOptions.IsEmailScanning == false)
                {
					System.Diagnostics.Trace.WriteLine( Properties.Resources.AUDIT_FILESTART, "AuditInfo" );
                    bool isDiff = false;
					if (string.Compare(m_traceOptions.FolderToScan, m_fileSystemScanner.RootFolder, true,
						System.Threading.Thread.CurrentThread.CurrentCulture) != 0)
						isDiff = true;
					if (isDiff)
					{
						if (m_fileSystemScanner.IsCounting)
						{
							m_fileSystemScanner.EndFolderCount();
							Thread.Sleep(500); // Lets give a while to clean up.                           
						}
						m_totalFiles = 0;
						m_fileSystemScanner.BeginFolderCount(m_traceOptions.FolderToScan);
						Thread.Sleep(50); // Give it a while to queue up information
					}
                    m_traceClient.NotifyItemCount(m_totalFiles);
                    m_fileSystemScanner.BeginProcess();
                    m_traceClient.NotifyInitialMailboxName(m_fileSystemScanner.MailBox);
                }
            }
        }
示例#14
0
        /// <summary>
        /// Starts the Audit helper.  
        /// From this point on, the audit helper will asyncronously process 
        /// any MailMessage objects that are passed in from Enqueue.
        /// </summary>
        public void Audit()
        {
            lock (this)
            {
                m_traceOptions = m_traceClient.QueryOptions();

                if (m_emailScanner!=null)
                {
                    m_emailScanner.SetFolders(m_traceOptions.FolderFlags);
                    m_emailWorker = new Thread(new ThreadStart(EmailScanWorker));
                    m_emailWorker.Name = "m_emailWorker";
                    m_emailWorker.Start();
                }

                if (m_fileSystemScanner != null)
                {
                    m_fileSystemScanner.SetDirectories(null);
                    m_fileSystemScanner.SetSearchFilters(null);

                    m_fileSystemWorker = new Thread(new ThreadStart(FileSystemScanWorker));
                    m_fileSystemWorker.Name = "m_fileSystemWorker";
                    m_fileSystemWorker.Start();
                }

                m_continue = true;
				m_state = AuditState.Started;
            }
        }
示例#15
0
        public bool CanLogToDB(AuditState state)
        {
            if (_config.IsDbLoggingEnabled)
                if (_config.StatesForDbAudit.Contains(state))
                return true;

            return false;
        }
示例#16
0
 private void OnFileSystemEnd(object sender, EventArgs e)
 {
     m_traceClient.NotifyFinished();
     m_state = AuditState.Stopped;
 }
示例#17
0
        protected void btn_Sumbit_Click(object sender, EventArgs e)
        {
            try
            {
                using (IFMPDBContext db = new IFMPDBContext())
                {
                    Score      Score      = db.Score.FirstOrDefault(t => t.ID == ScoreID && t.IsDel != true);
                    AuditState auditstate = (AuditState)Convert.ToInt32(this.ddl_Audit.SelectedValue);
                    Notice     Notice     = new Notice();
                    if (Score != null)
                    {
                        if (Score.AuditState == AuditState.待初审 && Score.FirstAuditUserID == UserID && db.ScoreAuditUser.FirstOrDefault(t => t.UserID == UserID && t.ScoreAuditUserType == ScoreAuditUserType.初审人) != null)
                        {
                            if (auditstate == AuditState.通过)
                            {
                                Score.AuditState = AuditState.待终审;

                                Notice.Contenet = "当前有一条奖扣记录需要审核|主题:" + Score.Title + "(" + db.ScoreEvent.FirstOrDefault(t => t.ID == Score.ScoreEventID).BScore
                                                  + "分)"
                                                  + "|记录人:" + db.User.FirstOrDefault(t => t.ID == Score.CreateUserID).RealName
                                                  + "|参与人:" + new ScoreUserDAO().GetScoreUser(Score.ID)
                                                  + "|初审人:" + db.User.FirstOrDefault(t => t.ID == Score.FirstAuditUserID.Value).RealName
                                                  + "|终审人:" + db.User.FirstOrDefault(t => t.ID == Score.LastAuditUserID.Value).RealName
                                                  + "|状态:待终审";
                                Notice.IsSend       = false;
                                Notice.NoticeType   = NoticeType.积分制消息;
                                Notice.ReciveUserID = Score.LastAuditUserID.Value;
                                Notice.SendUserID   = UserID;
                                Notice.SendDate     = DateTime.Now;
                                Notice.SourceID     = Score.ID;
                                Notice.URL          = ParaUtils.SiteURL + "/jfz/app/RegistrationDetail.html?flag=1&id=" + Score.ID;
                                db.Notice.Add(Notice);

                                //给每个人发一个
                                foreach (ScoreUser ScoreUser in db.ScoreUser.Where(t => t.IsDel != true && t.ScoreID == Score.ID).ToList())
                                {
                                    Notice          = new Notice();
                                    Notice.Contenet = "您有一条奖扣记录正在审核中|主题:" + Score.Title + "(" + db.ScoreEvent.FirstOrDefault(t => t.ID == Score.ScoreEventID).BScore
                                                      + "分)"
                                                      + "|记录人:" + db.User.FirstOrDefault(t => t.ID == Score.CreateUserID).RealName
                                                      + "|参与人:" + new ScoreUserDAO().GetScoreUser(Score.ID)
                                                      + "|初审人:" + db.User.FirstOrDefault(t => t.ID == Score.FirstAuditUserID.Value).RealName
                                                      + "|终审人:" + db.User.FirstOrDefault(t => t.ID == Score.LastAuditUserID.Value).RealName
                                                      + "|状态:待终审";
                                    Notice.IsSend       = false;
                                    Notice.NoticeType   = NoticeType.积分制消息;
                                    Notice.ReciveUserID = ScoreUser.UserID;
                                    Notice.SendUserID   = UserID;
                                    Notice.SourceID     = Score.ID;
                                    Notice.SendDate     = DateTime.Now;
                                    Notice.URL          = ParaUtils.SiteURL + "/jfz/app/RegistrationDetail.html?flag=2&id=" + Score.ID;
                                    db.Notice.Add(Notice);
                                }
                            }
                            else
                            {
                                Score.AuditState = AuditState.驳回;

                                foreach (ScoreUser ScoreUser in db.ScoreUser.Where(t => t.IsDel != true && t.ScoreID == Score.ID).ToList())
                                {
                                    Notice          = new Notice();
                                    Notice.Contenet = "您有一条奖扣记录被驳回|主题:" + Score.Title + "(" + db.ScoreEvent.FirstOrDefault(t => t.ID == Score.ScoreEventID).BScore
                                                      + "分)"
                                                      + "|记录人:" + db.User.FirstOrDefault(t => t.ID == Score.CreateUserID).RealName
                                                      + "|参与人:" + new ScoreUserDAO().GetScoreUser(Score.ID)
                                                      + "|初审人:" + db.User.FirstOrDefault(t => t.ID == Score.FirstAuditUserID.Value).RealName
                                                      + "|终审人:" + db.User.FirstOrDefault(t => t.ID == Score.LastAuditUserID.Value).RealName
                                                      + "|状态:驳回";
                                    Notice.IsSend       = false;
                                    Notice.NoticeType   = NoticeType.积分制消息;
                                    Notice.ReciveUserID = ScoreUser.UserID;
                                    Notice.SendUserID   = UserID;
                                    Notice.SendDate     = DateTime.Now;
                                    Notice.SourceID     = Score.ID;
                                    Notice.URL          = ParaUtils.SiteURL + "/jfz/app/RegistrationDetail.html?flag=2&id=" + Score.ID;
                                    db.Notice.Add(Notice);
                                }
                            }
                            Score.FirstAuditDate = DateTime.Now;
                            Score.FirstAuditMark = this.txt_EventMark.Text.Trim();
                        }
                        if (Score.AuditState == AuditState.待终审 && Score.LastAuditUserID == UserID && db.ScoreAuditUser.FirstOrDefault(t => t.UserID == UserID && t.ScoreAuditUserType == ScoreAuditUserType.终审人) != null)
                        {
                            if (auditstate == AuditState.通过)
                            {
                                Score.AuditState = AuditState.通过;

                                foreach (ScoreUser ScoreUser in db.ScoreUser.Where(t => t.IsDel != true && t.ScoreID == Score.ID).ToList())
                                {
                                    Notice          = new Notice();
                                    Notice.Contenet = "您有一条奖扣记录已审核通过|主题:" + Score.Title + "(" + db.ScoreEvent.FirstOrDefault(t => t.ID == Score.ScoreEventID).BScore
                                                      + "分)"
                                                      + "|记录人:" + db.User.FirstOrDefault(t => t.ID == Score.CreateUserID).RealName
                                                      + "|参与人:" + new ScoreUserDAO().GetScoreUser(Score.ID)
                                                      + "|初审人:" + db.User.FirstOrDefault(t => t.ID == Score.FirstAuditUserID.Value).RealName
                                                      + "|终审人:" + db.User.FirstOrDefault(t => t.ID == Score.LastAuditUserID.Value).RealName
                                                      + "|状态:通过";
                                    Notice.IsSend       = false;
                                    Notice.NoticeType   = NoticeType.积分制消息;
                                    Notice.ReciveUserID = ScoreUser.UserID;
                                    Notice.SendUserID   = UserID;
                                    Notice.SourceID     = Score.ID;
                                    Notice.SendDate     = DateTime.Now;
                                    Notice.URL          = ParaUtils.SiteURL + "/jfz/app/RegistrationDetail.html?flag=2&id=" + Score.ID;
                                    db.Notice.Add(Notice);
                                }
                            }
                            else
                            {
                                Score.AuditState = AuditState.驳回;

                                foreach (ScoreUser ScoreUser in db.ScoreUser.Where(t => t.IsDel != true && t.ScoreID == Score.ID).ToList())
                                {
                                    Notice          = new Notice();
                                    Notice.Contenet = "您有一条奖扣记录被驳回|主题:" + Score.Title + "(" + db.ScoreEvent.FirstOrDefault(t => t.ID == Score.ScoreEventID).BScore
                                                      + "分)"
                                                      + "|记录人:" + db.User.FirstOrDefault(t => t.ID == Score.CreateUserID).RealName
                                                      + "|参与人:" + new ScoreUserDAO().GetScoreUser(Score.ID)
                                                      + "|初审人:" + db.User.FirstOrDefault(t => t.ID == Score.FirstAuditUserID.Value).RealName
                                                      + "|终审人:" + db.User.FirstOrDefault(t => t.ID == Score.LastAuditUserID.Value).RealName
                                                      + "|状态:驳回";
                                    Notice.IsSend       = false;
                                    Notice.NoticeType   = NoticeType.积分制消息;
                                    Notice.ReciveUserID = ScoreUser.UserID;
                                    Notice.SendUserID   = UserID;
                                    Notice.SendDate     = DateTime.Now;
                                    Notice.SourceID     = Score.ID;
                                    Notice.URL          = ParaUtils.SiteURL + "/jfz/app/RegistrationDetail.html?flag=2&id=" + Score.ID;
                                    db.Notice.Add(Notice);
                                }
                            }

                            Score.LastAuditDate = DateTime.Now;
                            Score.LastAuditMark = this.txt_EventMark.Text.Trim();
                        }

                        db.SaveChanges();
                        ShowMessage();
                        new SysLogDAO().AddLog(LogType.操作日志_修改, "审核奖扣积分信息", UserID);
                    }
                    else
                    {
                        ShowMessage("找不到积分奖扣信息");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                new SysLogDAO().AddLog(LogType.系统日志, ex.Message, UserID);
                return;
            }
        }