/// <summary> /// Создание новой задачи. Вызывается из присоединённого административного объекта, который также назнает свойства /// новорожденной задаче /// </summary> public static TaskInvoiceInstanceDefinition create(Session ssn, TaskParameters tp) { TaskInvoiceInstanceDefinition tid = new TaskInvoiceInstanceDefinition(ssn); tid._TaskInitiator = null; // Если создаётся через интерфейс, то TaskInitiator заполняется, иначе - обнуляется return(tid); }
public override void create() { // Параметры формируются здесь исключительно для демонстрации последующиего алгоритма разбора в методе SetTaskParameters TaskParameters tp = GetTaskParams(); // Создание задачи (вызов new) TaskInvoiceInstanceDefinition tid = TaskInvoiceInstanceDefinition.create(this.Session, tp); SetTaskParameters(ref tid, this, tp); // Вызываем activate() для созданной задачи tid.activate(); }
//[DebuggerHidden] private TaskParameters GetTaskParams() { TaskParameters taskParams = new TaskParameters(); taskParams.Priority = Priority; taskParams.ExcludedOwnerString = ""; taskParams.PotentialOwnerString = "user: VB_ANGARA\\HomoSapiens; role: ; group: ;"; taskParams.BusinessAdministratorString = "user: VB_ANGARA\\HomoSapiens; role: ; group: ;"; taskParams.PossibleDelegateString = ""; taskParams.TaskStakeholderString = ""; taskParams.NotificationRecipientString = ""; taskParams.CallBackObject = this.Oid; return(taskParams); }
/// <summary> /// Перенос параметров в задачу. /// Данная процедура: /// 1. Извлекает пользователей из соотвесттвующих списков данного объекта администрирования /// 2. Извлекает пользователей из списков, задачнных через параметр типа TaskParameters /// 3. Сливает вместе соответствующие списки из пп 1 и 2 /// 4. Переносит результат в пользвательскую задачу /// 5. Также переносит данные о приоритете и т.д. /// </summary> /// <param name="task"></param> private void SetTaskParameters(ref TaskInvoiceInstanceDefinition task, BaseTaskInstanceDefinitionAdmin adminTask, TaskParameters tp) { FunctionalTaskReference.ProcessElements(tp, ref task, this.Session); FunctionalTaskReference.FillUsersFromAdminTaskCollection(this, ref task); task.Priority = this.Priority; //task.CallBackObject = this.CallBackObject; task.TaskAdminGuid = this.Oid; }
public static void ProcessElements(TaskParameters tp, ref DealWithoutStageTaskInstanceDefinition task, Session ssn) { foreach (string userName in tp.BusinessAdministrators) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.BusinessAdministrators.IndexOf(au) == -1) { au.BaseUserTaskBusinessAdministrators.Add(task); } } } foreach (string userName in tp.ExcludedOwners) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.ExcludedOwners.IndexOf(au) == -1) { au.BaseUserTaskExcludedOwners.Add(task); } } } foreach (string userName in tp.NotificationRecipients) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.NotificationRecipients.IndexOf(au) == -1) { au.BaseUserTaskNotificationRecipients.Add(task); } } } foreach (string userName in tp.PossibleDelegates) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.PossibleDelegates.IndexOf(au) == -1) { au.BaseUserTaskPossibleDelegates.Add(task); } } } foreach (string userName in tp.PotentialOwners) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.PotentialOwners.IndexOf(au) == -1) { au.BaseUserTaskPotentialOwners.Add(task); } } } foreach (string userName in tp.TaskStakeholders) { // Восстанавливаем пользователя по его UserName AppUser au = UserTaskReference.PopulateUserByUserName(userName, ssn); if (au != null) { if (task.TaskStakeholders.IndexOf(au) == -1) { au.BaseUserTaskTaskStakeholders.Add(task); } } } }