public Delegation GetDelegatedTaskInfo(string Id) { Delegation delegation = new Delegation(null); int listItemId = 0; if (int.TryParse(Id, out listItemId)) { string[] viewFields = new string[] { StringConstant.NotOvertimeList.DHField, StringConstant.CommonSPListField.ApprovalStatusField, StringConstant.CommonSPListField.CommonDepartmentField }; string queryStr = $@"<Where> <Eq> <FieldRef Name='ID' /> <Value Type='Counter'>{listItemId}</Value> </Eq> </Where>"; string siteUrl = SPContext.Current.Site.Url; List <Biz.Models.NotOvertimeManagement> notOvertimeManagementCollection = this.GetByQuery(queryStr, viewFields); if (notOvertimeManagementCollection != null && notOvertimeManagementCollection.Count > 0) { Biz.Models.NotOvertimeManagement notOvertimeManagement = notOvertimeManagementCollection[0]; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(siteUrl); EmployeeInfo currentApprover = _employeeInfoDAL.GetByADAccount(notOvertimeManagement.DH.ID); if (currentApprover != null) { delegation = DelegationPermissionManager.IsDelegation(currentApprover.ID, StringConstant.NotOvertimeList.ListUrl, notOvertimeManagement.ID); } } } return(delegation); }
public MessageResult Reject(NotOverTimeApprovalModel notOverTimeApprovalModel) { MessageResult msgResult = new MessageResult(); try { SPWeb spWeb = SPContext.Current.Web; if (notOverTimeApprovalModel.Id > 0) { Biz.Models.NotOvertimeManagement notOvertimeManagement = _notOvertimeManagementDAL.GetByID(notOverTimeApprovalModel.Id); string currentApprovalStatus = !string.IsNullOrEmpty(notOvertimeManagement.ApprovalStatus) ? notOvertimeManagement.ApprovalStatus.ToLower() : string.Empty; if (currentApprovalStatus == ApprovalStatus.Approved.ToLower() || currentApprovalStatus == ApprovalStatus.Cancelled.ToLower() || currentApprovalStatus == ApprovalStatus.Rejected.ToLower()) { return new MessageResult { Code = (int)NotOverTimeErrorCode.CannotReject, Message = MessageResultHelper.GetRequestStatusMessage(currentApprovalStatus), ObjectId = 0 }; } string requestExpiredMsg = MessageResultHelper.GetRequestExpiredMessage(notOvertimeManagement.RequestDueDate); if (!string.IsNullOrEmpty(requestExpiredMsg)) { return new MessageResult { Code = (int)NotOverTimeErrorCode.CannotReject, Message = requestExpiredMsg, ObjectId = 0 }; } bool hasRejectPermission = false; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(spWeb.Url); int approverId = notOverTimeApprovalModel.ApproverId; approverId = approverId > 0 ? approverId : notOvertimeManagement.DH.ID; EmployeeInfo currentApprover = _employeeInfoDAL.GetByADAccount(approverId); if (currentApprover != null) { if (currentApprover.ADAccount.ID == spWeb.CurrentUser.ID) { hasRejectPermission = true; } else { Delegation delegation = DelegationPermissionManager.IsDelegation(currentApprover.ID, StringConstant.NotOvertimeList.ListUrl, notOvertimeManagement.ID); if (delegation != null) { hasRejectPermission = true; } } } if (hasRejectPermission == true) { notOvertimeManagement.ApprovalStatus = ApprovalStatus.Rejected; notOvertimeManagement.Comment = notOverTimeApprovalModel.Comment; var approver = spWeb.AllUsers.GetByID(approverId); notOvertimeManagement.DH = new User { UserName = approver.LoginName, FullName = approver.Name }; _notOvertimeManagementDAL.SaveItem(notOvertimeManagement); // Send reject email to employee SendEmail(spWeb.Url, notOverTimeApprovalModel.Id, "LOAbsence_Reject", notOverTimeApprovalModel.ApproverName); } } } catch (Exception ex) { msgResult.Code = (int)NotOverTimeErrorCode.Unexpected; msgResult.Message = ex.Message; } return msgResult; }