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 }); }
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>()); }