/// <summary> /// InitDelegationOfNewTask /// </summary> /// <param name="listUrl">The listUrl.</param> /// <returns></returns> private DelegationOfNewTask InitDelegationOfNewTask(string listUrl) { DelegationOfNewTask delegationOfNewTask = new DelegationOfNewTask(); delegationOfNewTask.Title = string.Format("{0} - {1}", this.ddlFromEmployee.SelectedItem.Text, this.ddlToEmployee.SelectedItem.Text); delegationOfNewTask.FromDate = this.dtFromDate.SelectedDate.Date; delegationOfNewTask.ToDate = this.dtToDate.SelectedDate.Date; DelegationModule delegationModule = this.delegationModulesDAL.GetByListUrl(listUrl); if (delegationModule != null) { delegationOfNewTask.ModuleName = delegationModule.ModuleName; delegationOfNewTask.VietnameseModuleName = delegationModule.VietnameseModuleName; delegationOfNewTask.ListUrl = delegationModule.ListUrl; } delegationOfNewTask.FromEmployee = new LookupItem { LookupId = int.Parse(this.ddlFromEmployee.SelectedItem.Value), LookupValue = this.ddlFromEmployee.SelectedItem.Text }; List <LookupItem> toEmployees = new List <LookupItem>(); JavaScriptSerializer seriallizer = new JavaScriptSerializer(); var selectedToEmployees = seriallizer.Deserialize <List <int> >(this.hdSelectedToEmployees.Value); foreach (var toEmployee in selectedToEmployees) { LookupItem lookupItem = new LookupItem(); lookupItem.LookupId = toEmployee; toEmployees.Add(lookupItem); } delegationOfNewTask.ToEmployee = toEmployees; return(delegationOfNewTask); }
/// <summary> /// To check current employee who is delegated to process for new task. /// </summary> /// <param name="fromEmployeeId"></param> /// <param name="listUrl">The url of list object. For example: /Lists/Requests, /Lists/Recruitments</param> /// <returns>If return not null value, this task is delegated for current employee. Otherwise return null value.</returns> public static DelegationOfNewTask IsDelegationOfNewTask(int fromEmployeeId, string listUrl) { DelegationOfNewTask delegationOfNewTask = null; string siteUrl = string.Empty; if (SPContext.Current != null) { siteUrl = SPContext.Current.Web.Url; } if (!string.IsNullOrEmpty(siteUrl)) { int toEmployeeId = 0; EmployeeInfo currentEmployeeInfo = GetCurrentEmployeeInfo(siteUrl); if (currentEmployeeInfo != null) { toEmployeeId = currentEmployeeInfo.ID; } if (toEmployeeId > 0) { delegationOfNewTask = IsDelegationOfNewTask(fromEmployeeId, toEmployeeId, listUrl, siteUrl); } } return(delegationOfNewTask); }
/// <summary> /// To check employee who is delegated to process for new task. /// </summary> /// <param name="fromEmployeeId">The employ id who is processing for this task.</param> /// <param name="toEmployeeId"></param> /// <param name="listUrl">The url of list object. For example: /Lists/Requests, /Lists/Recruitments</param> /// <param name="itemId">The id of SPListItem (task).</param> /// <param name="siteUrl">The current site url.</param> /// <returns></returns> public static DelegationOfNewTask IsDelegationOfNewTask(int fromEmployeeId, int toEmployeeId, string listUrl, string siteUrl) { DelegationOfNewTask res = null; if (delegationsOfNewTaskDAL == null) { delegationsOfNewTaskDAL = new DelegationsOfNewTaskDAL(siteUrl); } string queryString = $@"<Where> <And> <Leq> <FieldRef Name='{StringConstant.DelegationsOfNewTaskList.Fields.FromDate}' /> <Value IncludeTimeValue='FALSE' Type='DateTime'>{DateTime.Today.Date.ToString(StringConstant.DateFormatForCAML)}</Value> </Leq> <And> <Geq> <FieldRef Name='{StringConstant.DelegationsOfNewTaskList.Fields.ToDate}' /> <Value IncludeTimeValue='FALSE' Type='DateTime'>{DateTime.Today.Date.ToString(StringConstant.DateFormatForCAML)}</Value> </Geq> <And> <Eq> <FieldRef Name='{StringConstant.DelegationsOfNewTaskList.Fields.FromEmployee}' LookupId='TRUE'/> <Value Type='Lookup'>{fromEmployeeId}</Value> </Eq> <And> <Eq> <FieldRef Name='{StringConstant.DelegationsOfNewTaskList.Fields.ToEmployee}' LookupId='TRUE'/> <Value Type='Lookup'>{toEmployeeId}</Value> </Eq> <Eq> <FieldRef Name='{StringConstant.DelegationsOfNewTaskList.Fields.ListUrl}' /> <Value Type='Text'>{listUrl}</Value> </Eq> </And> </And> </And> </And> </Where>"; SPQuery query = new SPQuery { Query = queryString, RowLimit = 1 }; var delegationsOfNewTask = delegationsOfNewTaskDAL.GetByQuery(query); if (delegationsOfNewTask != null && delegationsOfNewTask.Count > 0) { res = delegationsOfNewTask[0]; } return(res); }
public static bool IsDelegationOfNewTaskExisted(DelegationOfNewTask delegationOfNewTask, string siteUrl) { var result = false; List <int> toEmployeeIds = new List <int>(); foreach (var toEmployee in delegationOfNewTask.ToEmployee) { toEmployeeIds.Add(toEmployee.LookupId); } result = IsDelegationOfNewTaskExisted(delegationOfNewTask.FromEmployee.LookupId, toEmployeeIds, delegationOfNewTask.ListUrl, delegationOfNewTask.FromDate, delegationOfNewTask.ToDate, siteUrl); return(result); }
private void BtnDelegate_Click(object sender, EventArgs e) { try { if (this.IsValid) { var savedDelegationsOfNewTasks = false; var savedDelectedDelegationTasks = false; //if (this.cbDelegationNewTask.Checked) var isDelegationOfNewTaskChecked = true; if (isDelegationOfNewTaskChecked) { List <DelegationOfNewTask> delegationOfNewTaskEntities = new List <DelegationOfNewTask>(); JavaScriptSerializer seriallizer = new JavaScriptSerializer(); var selectedModules = seriallizer.Deserialize <List <string> >(this.hdSelectedModules.Value); // Select all modules if (selectedModules != null && selectedModules.Count > 0) { foreach (var listUrl in selectedModules) { if (!string.IsNullOrEmpty(listUrl)) { DelegationOfNewTask delegationOfNewTask = InitDelegationOfNewTask(listUrl); var isExisted = DelegationManager.IsDelegationOfNewTaskExisted(delegationOfNewTask, this.SiteUrl); if (!isExisted) { delegationOfNewTaskEntities.Add(delegationOfNewTask); } } } } if (delegationOfNewTaskEntities.Count > 0) { savedDelegationsOfNewTasks = this.delegationsOfNewTaskDAL.SaveItems(delegationOfNewTaskEntities); } else { savedDelegationsOfNewTasks = true; } } if (this.selectedDelegationTasks != null && this.selectedDelegationTasks.Count > 0) { savedDelectedDelegationTasks = this.delegationsDAL.SaveItems(selectedDelegationTasks); } else { savedDelectedDelegationTasks = true; } if (savedDelegationsOfNewTasks && savedDelectedDelegationTasks) { SendEmail(); CloseForm(sender); } else { // TODO: Continue show error message. } } } catch (Exception ex) { this.hdErrorMessage.Value = ex.Message; ULSLogging.LogError(ex); } }