コード例 #1
0
        public override void MakeLeaveDayRequest(DayStatus dayStatus)
        {
            var leaveDay = new LeaveDay(dayStatus, this);

            History.Add(leaveDay.DeepClone());
            Approver.Approve(leaveDay);
        }
コード例 #2
0
        public object approve_flowcase(ApproveModel model)
        {
            Singleton <ILogWritter> .Instance?.WriteLog("WorkFlow-approve_flowcase", JsonConvert.SerializeObject(model));

            Approver approver = new Approver(Entities, User.Identity.Name);

            try
            {
                ReturnApproveResult result = approver.Approve(model.flowCaseId, model.nextApprovers);
                if (result.Result == ApproveResult.Approved || result.Result == ApproveResult.FlowApproved)
                {
                    approver.NotificationSender.Send();
                    return(new { ret_code = RetCode.Success, ret_msg = string.Empty });
                }
                return(new { ret_code = RetCode.Failure, ret_msg = result.ToString() });
            }
            catch (Exception ex)
            {
                return(new { ret_code = RetCode.Failure, ret_msg = ex.Message });
            }
        }
コード例 #3
0
        public ActionResult Approve(int flowCaseId, string[] nextApprover)
        {
            Approver manager = new Approver(WFEntities, this.Username);

            if (nextApprover == null || nextApprover.Length == 0)
            {
                int          curGroupId = manager.GetCurrentStepGroupId(flowCaseId);
                NextStepData nsd        = manager.GetNextStepApprovers(flowCaseId, curGroupId);
                if (nsd.EmployeeList.Count > 0)
                {
                    ViewBag.flowCaseId = flowCaseId;
                    return(View("SelectNextApprover", "~/Views/Shared/_ModalLayout.cshtml", nsd.EmployeeList));
                }
            }
            ReturnApproveResult returnValue = manager.Approve(flowCaseId, nextApprover);

            manager.NotificationSender.Send();
            ViewBag.nextStepUsers = returnValue.NextApprovers;
            ViewBag.approveResult = returnValue.Result;
            ViewBag.InboxCount    = manager.CountInbox();
            return(PartialView("Result", manager.GetFlowAndCase(flowCaseId)));
        }