コード例 #1
0
        public TaskOverviewModel GetTaskOverview(string currentUserADId, string currentUserInfoId, string approverFullName)
        {
            int  userADId;
            bool currentUserIdResult = Int32.TryParse(currentUserADId, out userADId);
            int  userInfoId;
            bool currentUserInfoIdResult   = Int32.TryParse(currentUserInfoId, out userInfoId);
            var  totalWaitingApproval      = 0;
            var  totalWaitingApprovalToday = 0;
            var  totalInProcess            = 0;
            var  totalApprovedToday        = 0;

            if (currentUserIdResult)
            {
                // Get Delegation list:

                List <Delegation> delegationList = _delegationDAL.GetDelegationApprovalList(SPContext.Current.Web, userInfoId);
                // Waiting Approval
                var waitingApprovalVisitor = new WaitingApprovalVisitor(userADId, userInfoId, _webUrl);
                waitingApprovalVisitor.CountOnly      = true;
                waitingApprovalVisitor.DelegationList = delegationList;
                // Waiting Approval TODAY
                var waitingApprovalTodayVisitor = new WaitingApprovalTodayVisitor(userADId, userInfoId, this._webUrl);
                waitingApprovalTodayVisitor.CountOnly      = true;
                waitingApprovalTodayVisitor.DelegationList = delegationList;
                // In-Process
                var inProcessVisitor = new InProcessVisitor(userADId, userInfoId, _webUrl);
                inProcessVisitor.CountOnly      = true;
                inProcessVisitor.DelegationList = delegationList;
                // Approved TODAY -> Dont need to load Delegation
                var approvedTodayVisitor = new ApprovedTodayVisitor(userADId, userInfoId, _webUrl);
                approvedTodayVisitor.CountOnly        = true;
                approvedTodayVisitor.ApproverFullName = approverFullName;

                foreach (var dal in _listDAL)
                {
                    dal.Accept(waitingApprovalVisitor);
                    dal.Accept(waitingApprovalTodayVisitor);
                    dal.Accept(inProcessVisitor);
                    dal.Accept(approvedTodayVisitor);
                }

                totalWaitingApproval      = waitingApprovalVisitor.TotalCount;
                totalWaitingApprovalToday = waitingApprovalTodayVisitor.TotalCount;
                totalInProcess            = inProcessVisitor.TotalCount;
                totalApprovedToday        = approvedTodayVisitor.TotalCount;
            }

            return(new TaskOverviewModel
            {
                CurrentUserADId = userADId,
                CurrentUserId = userInfoId,
                TotalWaitingApproval = totalWaitingApproval,
                TotalWaitingApprovalToday = totalWaitingApprovalToday,
                TotalInProcess = totalInProcess,
                TotalApprovedToday = totalApprovedToday
            });
        }
コード例 #2
0
        public IEnumerable <FilterTaskModel> GetTaskByCondition(string condition, string currentUserADId, string currentUserInfoId, string approverFullName)
        {
            int  userADId;
            bool currentUserADIdResult = Int32.TryParse(currentUserADId, out userADId);

            if (currentUserADIdResult)
            {
                // Get Delegation list:
                int  userInfoId;
                bool currentUserInfoIdResult     = Int32.TryParse(currentUserInfoId, out userInfoId);
                List <Delegation> delegationList = _delegationDAL.GetDelegationApprovalList(SPContext.Current.Web, userInfoId);
                switch (condition)
                {
                case TaskCondition.WaitingApproval:
                    var waitingApprovalVisitor = new WaitingApprovalVisitor(userADId, userInfoId, _webUrl);
                    waitingApprovalVisitor.DelegationList = delegationList;
                    foreach (var dal in _listDAL)
                    {
                        dal.Accept(waitingApprovalVisitor);
                    }

                    return(waitingApprovalVisitor.FilterTaskList.OrderBy(i => i.CreatedDate).Select(r => FilterTaskModel.FromDTO(r)));

                case TaskCondition.InProcess:
                    var inProcessVisitor = new InProcessVisitor(userADId, userInfoId, _webUrl);
                    inProcessVisitor.DelegationList = delegationList;
                    foreach (var dal in _listDAL)
                    {
                        dal.Accept(inProcessVisitor);
                    }

                    return(inProcessVisitor.FilterTaskList.OrderBy(i => i.CreatedDate).Select(r => FilterTaskModel.FromDTO(r)));

                case TaskCondition.WaitingApprovalToday:
                    var waitingApprovalTodayVisitor = new WaitingApprovalTodayVisitor(userADId, userInfoId, this._webUrl);
                    waitingApprovalTodayVisitor.DelegationList = delegationList;
                    foreach (var dal in _listDAL)
                    {
                        dal.Accept(waitingApprovalTodayVisitor);
                    }

                    return(waitingApprovalTodayVisitor.FilterTaskList.Select(r => FilterTaskModel.FromDTO(r)));

                case TaskCondition.ApprovedToday:
                    var approvedTodayVisitor = new ApprovedTodayVisitor(userADId, userInfoId, _webUrl);
                    approvedTodayVisitor.ApproverFullName = approverFullName;
                    // Approved: Dont need to load Delegation
                    foreach (var dal in _listDAL)
                    {
                        dal.Accept(approvedTodayVisitor);
                    }

                    return(approvedTodayVisitor.FilterTaskList.OrderBy(i => i.CreatedDate).Select(r => FilterTaskModel.FromDTO(r)));

                default:
                    return(Enumerable.Empty <FilterTaskModel>());
                }
            }

            return(Enumerable.Empty <FilterTaskModel>());
        }