public LookupItem GetCurrentEmployeeProcessing(SPListItem listItem) { LookupItem ret = null; VehicleManagement vehicleManagement = this.ParseToEntity(listItem); string approvalStatus = vehicleManagement.ApprovalStatus.ToLower(); if (approvalStatus != ApprovalStatus.Approved.ToLower() && approvalStatus != ApprovalStatus.Rejected.ToLower() && approvalStatus != ApprovalStatus.Cancelled.ToLower()) { TaskManagementDAL _taskManagementDAL = new TaskManagementDAL(this.SiteUrl); string taskQueryStr = string.Format(@"<Where> <And> <Eq> <FieldRef Name='CurrentStepStatus' /> <Value Type='Choice'>{0}</Value> </Eq> <And> <Eq> <FieldRef Name='StepModule' /> <Value Type='Choice'>{1}</Value> </Eq> <Eq> <FieldRef Name='ItemId' /> <Value Type='Number'>{2}</Value> </Eq> </And> </And> </Where><OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy>", vehicleManagement.ApprovalStatus.ToString(), StepModuleList.VehicleManagement.ToString(), vehicleManagement.ID); SPQuery spQuery = new SPQuery() { Query = taskQueryStr, RowLimit = 1 }; List <TaskManagement> taskManagementCollection = _taskManagementDAL.GetByQuery(taskQueryStr); if (taskManagementCollection != null && taskManagementCollection.Count > 0) { var currentStepApprover = employeeInfoDAL.GetByADAccount(taskManagementCollection[0].AssignedTo.ID); if (currentStepApprover != null) { ret = new LookupItem() { LookupId = currentStepApprover.ID, LookupValue = currentStepApprover.FullName } } ; } } return(ret); }
private string BuildQueryGetListOfTasks(EmployeeInfo employeeInfo) { string filterStr = "<Eq><FieldRef Name='ID' /><Value Type='Counter'>0</Value></Eq>"; TaskManagementDAL _taskManagementDAL = new TaskManagementDAL(this.SiteUrl); string taskQueryStr = string.Format(@"<Where> <And> <Eq> <FieldRef Name='Status' /> <Value Type='Choice'>{0}</Value> </Eq> <And> <Eq> <FieldRef Name='StepModule' /> <Value Type='Choice'>{1}</Value> </Eq> <Eq> <FieldRef Name='AssignedTo' LookupId='TRUE' /> <Value Type='User'>{2}</Value> </Eq> </And> </And> </Where>", TaskStatusList.InProgress.ToString(), StepModuleList.FreightManagement.ToString(), employeeInfo.ADAccount.ID); List <TaskManagement> taskManagementCollection = _taskManagementDAL.GetByQuery(taskQueryStr); if (taskManagementCollection != null && taskManagementCollection.Count > 0) { List <int> itemIds = taskManagementCollection.Where(t => t.ItemId > 0).Select(t => t.ItemId).ToList(); if (itemIds != null && itemIds.Count > 0) { filterStr = ""; foreach (var itemId in itemIds) { filterStr += string.Format("<Value Type = 'Number'>{0}</Value>", itemId); } if (!string.IsNullOrEmpty(filterStr)) { filterStr = string.Format("<In><FieldRef Name = 'ID'/><Values>{0}</Values></In>", filterStr); } } } filterStr = string.Format("<Where>{0}</Where>", filterStr); return(filterStr); }
public VehicleManagement RunWorkFlow(VehicleManagement vehicleManagement, TaskManagement taskOfPrevStep) { if (vehicleManagement == null) { return(null); } TaskManagement taskManagement = new TaskManagement(); taskManagement.StartDate = DateTime.Now; taskManagement.DueDate = vehicleManagement.RequestDueDate; taskManagement.PercentComplete = 0; taskManagement.ItemId = vehicleManagement.ID; taskManagement.ItemURL = taskOfPrevStep.ItemURL; taskManagement.ListURL = taskOfPrevStep.ListURL; taskManagement.TaskName = TASK_NAME; taskManagement.TaskStatus = TaskStatusList.InProgress; taskManagement.StepModule = StepModuleList.VehicleManagement.ToString(); taskManagement.Department = vehicleManagement.CommonDepartment.LookupId > 0 ? vehicleManagement.CommonDepartment : null; taskManagement.AssignedTo = taskOfPrevStep.NextAssign; taskManagement.NextAssign = null; StepManagementDAL _stepManagementDAL = new StepManagementDAL(this.SiteUrl); var nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.VehicleManagement, vehicleManagement.CommonDepartment.LookupId); if (nextStep != null) { taskManagement.StepStatus = nextStep.StepStatus; ModuleBuilder moduleBuilder = new ModuleBuilder(this.SiteUrl); // TODO: Get location by vehicleManagement: var locationId = 2; var nextAssign = moduleBuilder.GetNextApproval(vehicleManagement.CommonDepartment.LookupId, locationId, StepModuleList.VehicleManagement, nextStep.StepNumber); if (nextAssign != null) { taskManagement.NextAssign = nextAssign.ADAccount; } } TaskManagementDAL taskManagementDAL = new TaskManagementDAL(this.SiteUrl); int retId = taskManagementDAL.SaveItem(taskManagement); vehicleManagement.ApprovalStatus = taskManagement.StepStatus; this.SaveOrUpdate(vehicleManagement); return(vehicleManagement); }
public FreightManagement RunWorkFlow(FreightManagement freightManagement, TaskManagement taskOfPrevStep, EmployeeInfo approver, EmployeeInfo currentStepApprover) { if (freightManagement == null) { return(null); } TaskManagement taskManagement = new TaskManagement(); taskManagement.StartDate = DateTime.Now; taskManagement.DueDate = freightManagement.RequestDueDate; taskManagement.PercentComplete = 0; taskManagement.ItemId = freightManagement.ID; taskManagement.ItemURL = taskOfPrevStep.ItemURL; taskManagement.ListURL = taskOfPrevStep.ListURL; taskManagement.TaskName = TASK_NAME; taskManagement.TaskStatus = TaskStatusList.InProgress; taskManagement.StepModule = StepModuleList.FreightManagement.ToString(); taskManagement.Department = freightManagement.Department.LookupId > 0 ? freightManagement.Department : null; StepManagementDAL _stepManagementDAL = new StepManagementDAL(this.SiteUrl); User assignee = null; User nextAssignee = null; string stepStatus = string.Empty; StepManagement nextStep = null; if (currentStepApprover.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.DepartmentHead && currentStepApprover.ADAccount.ID == freightManagement.DH.ID) { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.FreightManagement, freightManagement.Department.LookupId); if (freightManagement.HighPriority == true) { if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(freightManagement.Department.LookupId, freightManagement.Location.LookupId, StepModuleList.FreightManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } else { if (nextStep != null) { nextStep = _stepManagementDAL.GetNextStepManagement(nextStep.StepStatus, StepModuleList.FreightManagement, freightManagement.Department.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(freightManagement.Department.LookupId, freightManagement.Location.LookupId, StepModuleList.FreightManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } } } else { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.FreightManagement, freightManagement.Department.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(freightManagement.Department.LookupId, freightManagement.Location.LookupId, StepModuleList.FreightManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } // get next approver if (nextStep != null) { nextStep = _stepManagementDAL.GetNextStepManagement(nextStep.StepStatus, StepModuleList.FreightManagement, freightManagement.Department.LookupId); if (nextStep != null) { var nextApprover = GetApproverAtStep(freightManagement.Department.LookupId, freightManagement.Location.LookupId, StepModuleList.FreightManagement, nextStep.StepNumber); if (nextApprover != null) { nextAssignee = nextApprover.ADAccount; } } } taskManagement.AssignedTo = assignee; taskManagement.NextAssign = nextAssignee; taskManagement.StepStatus = stepStatus; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(this.SiteUrl); EmailTemplateDAL _emailTemplateDAL = new EmailTemplateDAL(this.SiteUrl); if (assignee == null) { freightManagement.ApprovalStatus = StringConstant.ApprovalStatus.Approved.ToString(); this.SaveOrUpdate(freightManagement); EmailTemplate emailTemplate = _emailTemplateDAL.GetByKey("FreightManagement_Approve"); EmployeeInfo toUser = _employeeInfoDAL.GetByID(freightManagement.Requester.LookupId); SendEmail(freightManagement, emailTemplate, approver, toUser, this.SiteUrl, false); } else if (assignee != null) { TaskManagementDAL taskManagementDAL = new TaskManagementDAL(this.SiteUrl); int retId = taskManagementDAL.SaveItem(taskManagement); freightManagement.ApprovalStatus = taskManagement.StepStatus; this.SaveOrUpdate(freightManagement); EmailTemplate emailTemplate = _emailTemplateDAL.GetByKey("FreightManagement_Request"); EmployeeInfo toUser = _employeeInfoDAL.GetByADAccount(assignee.ID); SendEmail(freightManagement, emailTemplate, approver, toUser, this.SiteUrl, true); try { List <EmployeeInfo> toUsers = DelegationPermissionManager.GetListOfDelegatedEmployees(toUser.ID, StringConstant.FreightManagementList.ListUrl, freightManagement.ID); SendDelegationEmail(freightManagement, emailTemplate, toUsers, this.SiteUrl); } catch { } } return(freightManagement); }
public FreightManagement StartWorkFlow(SPWeb spWeb, FreightManagement freightManagement, int freightId) { if (freightId == 0) { return(null); } SPList freightList = spWeb.TryGetSPList(spWeb.Url + this.ListUrl); TaskManagement taskManagement = new TaskManagement(); taskManagement.StartDate = DateTime.Now; taskManagement.DueDate = freightManagement.RequestDueDate; taskManagement.PercentComplete = 0; taskManagement.ItemId = freightManagement.ID; taskManagement.ItemURL = freightList.DefaultDisplayFormUrl + "?ID=" + freightId; taskManagement.ListURL = freightList.DefaultViewUrl; taskManagement.TaskName = TASK_NAME; taskManagement.TaskStatus = TaskStatusList.InProgress; taskManagement.StepModule = StepModuleList.FreightManagement.ToString(); taskManagement.Department = freightManagement.Department.LookupId > 0 ? freightManagement.Department : null; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(this.SiteUrl); EmployeeInfo departmentHeadInfo = _employeeInfoDAL.GetByADAccount(freightManagement.DH.ID); if (freightManagement.Requester.LookupId == departmentHeadInfo.ID) { taskManagement.StepStatus = StepStatusList.BODApproval; taskManagement.AssignedTo = freightManagement.BOD; } else { taskManagement.StepStatus = StepStatusList.DHApproval; taskManagement.AssignedTo = freightManagement.DH; } taskManagement.NextAssign = null; StepManagementDAL _stepManagementDAL = new StepManagementDAL(this.SiteUrl); var nextStep = _stepManagementDAL.GetNextStepManagement(taskManagement.StepStatus, StepModuleList.FreightManagement, freightManagement.Department.LookupId); if (nextStep != null) { var nextAssign = GetApproverAtStep(freightManagement.Department.LookupId, freightManagement.Location.LookupId, StepModuleList.FreightManagement, nextStep.StepNumber); if (nextAssign != null) { taskManagement.NextAssign = nextAssign.ADAccount; } } TaskManagementDAL taskManagementDAL = new TaskManagementDAL(this.SiteUrl); int retId = taskManagementDAL.SaveItem(taskManagement); freightManagement.ApprovalStatus = taskManagement.StepStatus; freightManagement.Comment = string.Empty; freightManagement.SecurityNotes = string.Empty; freightManagement.IsFinished = false; freightManagement.HighPriority = false; this.SaveOrUpdate(freightManagement); EmailTemplateDAL _emailTemplateDAL = new EmailTemplateDAL(this.SiteUrl); EmailTemplate emailTemplate = _emailTemplateDAL.GetByKey("FreightManagement_Request"); EmployeeInfo toUser = _employeeInfoDAL.GetByADAccount(taskManagement.AssignedTo.ID); SendEmail(freightManagement, emailTemplate, null, toUser, this.SiteUrl, true); try { List <EmployeeInfo> toUsers = DelegationPermissionManager.GetListOfDelegatedEmployees(toUser.ID, StringConstant.FreightManagementList.ListUrl, freightManagement.ID); SendDelegationEmail(freightManagement, emailTemplate, toUsers, this.SiteUrl); } catch { } return(freightManagement); }
public BusinessTripManagement RunWorkFlow(BusinessTripManagement businessTripManagement, TaskManagement taskOfPrevStep, EmployeeInfo approver, EmployeeInfo currentStepApprover) { if (businessTripManagement == null) { return(null); } TaskManagement taskManagement = new TaskManagement(); taskManagement.StartDate = DateTime.Now; taskManagement.DueDate = businessTripManagement.RequestDueDate; taskManagement.PercentComplete = 0; taskManagement.ItemId = businessTripManagement.ID; taskManagement.ItemURL = taskOfPrevStep.ItemURL; taskManagement.ListURL = taskOfPrevStep.ListURL; taskManagement.TaskName = TASK_NAME; taskManagement.TaskStatus = TaskStatusList.InProgress; taskManagement.StepModule = StepModuleList.BusinessTripManagement.ToString(); taskManagement.Department = businessTripManagement.CommonDepartment.LookupId > 0 ? businessTripManagement.CommonDepartment : null; StepManagementDAL _stepManagementDAL = new StepManagementDAL(this.SiteUrl); User assignee = null; User nextAssignee = null; string stepStatus = string.Empty; if (businessTripManagement.Domestic == true) //Domestic Business Trip { StepManagement nextStep = null; if (currentStepApprover.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.DepartmentHead && currentStepApprover.ADAccount.ID == businessTripManagement.DH.ID) { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (businessTripManagement.TripHighPriority == true) { if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } else { if (nextStep != null) { nextStep = _stepManagementDAL.GetNextStepManagement(nextStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } } } else { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } // get next approver if (nextStep != null) { nextStep = _stepManagementDAL.GetNextStepManagement(nextStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { var nextApprover = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (nextApprover != null) { nextAssignee = nextApprover.ADAccount; } } } } else // Overseas Business Trip { StepManagement nextStep = null; if (currentStepApprover.ADAccount.ID == businessTripManagement.DirectBOD.ID) { if (businessTripManagement.DirectBOD.ID != businessTripManagement.BOD.ID) { assignee = businessTripManagement.BOD; stepStatus = StepStatusList.BODApproval; nextStep = new StepManagement() { StepStatus = stepStatus, StepModule = StepModuleList.BusinessTripManagement.ToString() }; } else { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } } else { nextStep = _stepManagementDAL.GetNextStepManagement(taskOfPrevStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { stepStatus = nextStep.StepStatus; var approverAtStep = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (approverAtStep != null) { assignee = approverAtStep.ADAccount; } } } // get next approver if (nextStep != null) { nextStep = _stepManagementDAL.GetNextStepManagement(nextStep.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { var nextApprover = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (nextApprover != null) { nextAssignee = nextApprover.ADAccount; } } } } taskManagement.AssignedTo = assignee; taskManagement.NextAssign = nextAssignee; taskManagement.StepStatus = stepStatus; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(this.SiteUrl); EmailTemplateDAL _emailTemplateDAL = new EmailTemplateDAL(this.SiteUrl); if (assignee == null) { businessTripManagement.ApprovalStatus = StringConstant.ApprovalStatus.Approved.ToString(); this.SaveOrUpdate(businessTripManagement); EmailTemplate emailTemplateRequester = _emailTemplateDAL.GetByKey("BusinessTripManagement_Approve"); EmployeeInfo toRequester = _employeeInfoDAL.GetByID(businessTripManagement.Requester.LookupId); SendEmail(businessTripManagement, emailTemplateRequester, approver, toRequester, this.SiteUrl, false); if (businessTripManagement.TransportationType == ResourceHelper.GetLocalizedString("BusinessTripManagement_TransportationTypeCompanyTitle", StringConstant.ResourcesFileLists, 1033)) { EmailTemplate emailTemplateDriver = _emailTemplateDAL.GetByKey("BusinessTripManagement_Driver"); EmployeeInfo toDriver = _employeeInfoDAL.GetByID(businessTripManagement.Driver.LookupId); SendEmail(businessTripManagement, emailTemplateDriver, approver, toDriver, this.SiteUrl, false); } if (!string.IsNullOrEmpty(businessTripManagement.CashRequestDetail)) { EmailTemplate emailTemplateAccountant = _emailTemplateDAL.GetByKey("BusinessTripManagement_Accountant"); EmployeeInfo toAccountant = _employeeInfoDAL.GetByID(businessTripManagement.Cashier.LookupId); SendEmail(businessTripManagement, emailTemplateAccountant, approver, toAccountant, this.SiteUrl, false); } } else if (assignee != null) { TaskManagementDAL taskManagementDAL = new TaskManagementDAL(this.SiteUrl); int retId = taskManagementDAL.SaveItem(taskManagement); businessTripManagement.ApprovalStatus = taskManagement.StepStatus; this.SaveOrUpdate(businessTripManagement); EmailTemplate emailTemplate = _emailTemplateDAL.GetByKey("BusinessTripManagement_Request"); EmployeeInfo toUser = _employeeInfoDAL.GetByADAccount(assignee.ID); SendEmail(businessTripManagement, emailTemplate, approver, toUser, this.SiteUrl, true); try { List <EmployeeInfo> toUsers = DelegationPermissionManager.GetListOfDelegatedEmployees(toUser.ID, StringConstant.BusinessTripManagementList.Url, businessTripManagement.ID); SendDelegationEmail(businessTripManagement, emailTemplate, toUsers, this.SiteUrl); } catch { } } return(businessTripManagement); }
public BusinessTripManagement StartWorkFlow(BusinessTripManagement businessTripManagement) { SPListItem spListItem = this.GetByIDToListItem(businessTripManagement.ID); TaskManagement taskManagement = new TaskManagement(); taskManagement.StartDate = DateTime.Now; taskManagement.DueDate = businessTripManagement.RequestDueDate; taskManagement.PercentComplete = 0; taskManagement.ItemId = businessTripManagement.ID; taskManagement.ItemURL = spListItem.ParentList.DefaultDisplayFormUrl + "?ID=" + businessTripManagement.ID; taskManagement.ListURL = spListItem.ParentList.DefaultViewUrl; taskManagement.TaskName = TASK_NAME; taskManagement.TaskStatus = TaskStatusList.InProgress; taskManagement.StepModule = StepModuleList.BusinessTripManagement.ToString(); taskManagement.Department = businessTripManagement.CommonDepartment.LookupId > 0 ? businessTripManagement.CommonDepartment : null; EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(this.SiteUrl); EmployeeInfo departmentHeadInfo = _employeeInfoDAL.GetByADAccount(businessTripManagement.DH.ID); if (businessTripManagement.Requester.LookupId == departmentHeadInfo.ID) { taskManagement.StepStatus = StepStatusList.BODApproval; taskManagement.AssignedTo = businessTripManagement.DirectBOD.ID > 0 ? businessTripManagement.DirectBOD : businessTripManagement.BOD; } else { taskManagement.StepStatus = StepStatusList.DHApproval; taskManagement.AssignedTo = businessTripManagement.DH; } taskManagement.NextAssign = null; StepManagementDAL _stepManagementDAL = new StepManagementDAL(this.SiteUrl); var nextStep = _stepManagementDAL.GetNextStepManagement(taskManagement.StepStatus, StepModuleList.BusinessTripManagement, businessTripManagement.CommonDepartment.LookupId); if (nextStep != null) { var nextAssign = GetApproverAtStep(businessTripManagement.CommonDepartment.LookupId, businessTripManagement.CommonLocation.LookupId, StepModuleList.BusinessTripManagement, nextStep.StepNumber); if (nextAssign != null) { taskManagement.NextAssign = nextAssign.ADAccount; } } TaskManagementDAL taskManagementDAL = new TaskManagementDAL(this.SiteUrl); int retId = taskManagementDAL.SaveItem(taskManagement); businessTripManagement.ApprovalStatus = taskManagement.StepStatus; this.SaveOrUpdate(businessTripManagement); EmailTemplateDAL _emailTemplateDAL = new EmailTemplateDAL(this.SiteUrl); EmailTemplate emailTemplate = _emailTemplateDAL.GetByKey("BusinessTripManagement_Request"); EmployeeInfo toUser = _employeeInfoDAL.GetByADAccount(taskManagement.AssignedTo.ID); SendEmail(businessTripManagement, emailTemplate, null, toUser, this.SiteUrl, true); try { List <EmployeeInfo> toUsers = DelegationPermissionManager.GetListOfDelegatedEmployees(toUser.ID, StringConstant.BusinessTripManagementList.Url, businessTripManagement.ID); SendDelegationEmail(businessTripManagement, emailTemplate, toUsers, this.SiteUrl); } catch { } return(businessTripManagement); }