/// <summary> /// Создание новой задачи. Вызывается из присоединённого административного объекта, который также назнает свойства /// новорожденной задаче /// </summary> public static DealWithoutStageTaskInstanceDefinition create(Session ssn, TaskParameters tp) { DealWithoutStageTaskInstanceDefinition tid = new DealWithoutStageTaskInstanceDefinition(ssn); tid._TaskInitiator = null; // Если создаётся через интерфейс, то TaskInitiator заполняется, иначе - обнуляется return(tid); }
/// <summary> /// Перенос параметров в задачу. /// Данная процедура: /// 1. Извлекает пользователей из соотвесттвующих списков данного объекта администрирования /// 2. Извлекает пользователей из списков, задачнных через параметр типа TaskParameters /// 3. Сливает вместе соответствующие списки из пп 1 и 2 /// 4. Переносит результат в пользвательскую задачу /// 5. Также переносит данные о приоритете и т.д. /// </summary> /// <param name="task"></param> private void SetTaskParameters(ref DealWithoutStageTaskInstanceDefinition task, DealWithoutStageTaskInstanceDefinitionAdmin 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 override void create() { // Параметры формируются здесь исключительно для демонстрации последующиего алгоритма разбора в методе SetTaskParameters TaskParameters tp = GetTaskParams(); // Создание задачи (вызов new) DealWithoutStageTaskInstanceDefinition tid = DealWithoutStageTaskInstanceDefinition.create(this.Session, tp); SetTaskParameters(ref tid, this, tp); // Вызываем activate() для созданной задачи tid.activate(); }
/// <summary> /// Собирает пользователей из всех соответствующих подсписков коллекции BaseUserTaskReference и добавляет их к /// соответствующему списку пользователей задачи /// Сбор пользвателей из ролей и групп пока не реализован! /// </summary> /// <param name="Butrs"></param> /// <param name="ual"></param> public static void FillUsersFromAdminTaskCollection(XPCollection <BaseUserTaskReference> Butrs, ref DealWithoutStageTaskInstanceDefinition task, UserListType userListType) { foreach (BaseUserTaskReference butr in Butrs) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; switch (userListType) { case UserListType.BusinessAdministrators: if (AppUserbutr != null & task.BusinessAdministrators.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskBusinessAdministrators.Add(task); } break; case UserListType.ExcludedOwners: if (AppUserbutr != null & task.ExcludedOwners.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskExcludedOwners.Add(task); } break; case UserListType.NotificationRecipients: if (AppUserbutr != null & task.NotificationRecipients.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskNotificationRecipients.Add(task); } break; case UserListType.PossibleDelegates: if (AppUserbutr != null & task.PossibleDelegates.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskPossibleDelegates.Add(task); } break; case UserListType.PotentialOwners: if (AppUserbutr != null & task.PotentialOwners.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskPotentialOwners.Add(task); } break; case UserListType.TaskStakeholders: if (AppUserbutr != null & task.TaskStakeholders.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskTaskStakeholders.Add(task); } break; } } if (butr.GetType() == typeof(RoleTaskReference)) { RoleTaskReference rolebutr = (RoleTaskReference)butr; //AppUser AppUserbutr = rolebutr.AppUser; //if (ual.IndexOf(AppUserbutr) == -1) ual.Add(AppUserbutr); } if (butr.GetType() == typeof(GroupTaskReference)) { GroupTaskReference groupbutr = (GroupTaskReference)butr; //AppUser AppUserbutr = userbutr.AppUser; //if (ual.IndexOf(AppUserbutr) == -1) ual.Add(AppUserbutr); } } }
protected override void OnActivated() { base.OnActivated(); Frame frame = Frame; View view = View; DetailView detailView = view as DetailView; // Запрещаем показ действия в режиме DetailView Type typeObjectOfDetailView; if (detailView != null) { typeObjectOfDetailView = detailView.ObjectTypeInfo.Type; // ((System.Type)(listView.CollectionSource.ObjectTypeInfo.Type)).UnderlyingSystemType; if (typeObjectOfDetailView.IsInstanceOfType(typeof(BaseTaskAdmin))) { // //Frame.GetController<DevExpress.ExpressApp.Win.SystemModule.WinNewObjectViewController>().NewObjectAction.Active.SetItemValue("create", false); // http://www.devexpress.com/Support/Center/p/Q265465.aspx //Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseTaskInstanceDefinitionAdmin.create"].Active.SetItemValue("create", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseTaskInstanceDefinitionAdmin.create"].Active.SetItemValue("CreateEnabled", false); } if (typeObjectOfDetailView.IsInstanceOfType(typeof(BaseTask))) { DealWithoutStageTaskInstanceDefinition curObj = (DealWithoutStageTaskInstanceDefinition)View.CurrentObject; // Разбор случаев Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.activate"].Active.SetItemValue("activateEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.Nominate"].Active.SetItemValue("NominateEnabled", false); switch (curObj.State) { case UserTaskState.Created: Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", true); break; case UserTaskState.Ready: Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", true); break; case UserTaskState.Reserved: Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", true); break; case UserTaskState.InProgress: Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", true); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", true); if (Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"] != null) { Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"].Active.SetItemValue("ApproveEnabled", true); } if (Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"] != null) { Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"].Active.SetItemValue("DeclainEnabled", true); } break; case UserTaskState.Completed: break; case UserTaskState.Failed: break; case UserTaskState.Error: break; case UserTaskState.Exited: break; case UserTaskState.Obsolete: break; } } } /* * if (View.Id == "BaseTaskInstanceDefinitionAdmin_DetailView") { * // * //Frame.GetController<DevExpress.ExpressApp.Win.SystemModule.WinNewObjectViewController>().NewObjectAction.Active.SetItemValue("create", false); * * // http://www.devexpress.com/Support/Center/p/Q265465.aspx * //Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseTaskInstanceDefinitionAdmin.create"].Active.SetItemValue("create", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseTaskInstanceDefinitionAdmin.create"].Active.SetItemValue("CreateEnabled", false); * } * * if (View.Id == "TaskInvoiceInstanceDefinition_DetailView" | View.Id == "BaseUserTask_DetailView") { * * TaskInvoiceInstanceDefinition curObj = (TaskInvoiceInstanceDefinition)View.CurrentObject; * * // Разбор случаев * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.activate"].Active.SetItemValue("activateEnabled", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", false); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.Nominate"].Active.SetItemValue("NominateEnabled", false); * * switch (curObj.State) { * case UserTaskState.Created : * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", true); * break; * case UserTaskState.Ready : * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", true); * break; * case UserTaskState.Reserved : * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", true); * break; * case UserTaskState.InProgress : * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", true); * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", true); * * if (Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"] != null) { * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"].Active.SetItemValue("ApproveEnabled", true); * } * if (Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"] != null) { * Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"].Active.SetItemValue("DeclainEnabled", true); * } * break; * case UserTaskState.Completed : * break; * case UserTaskState.Failed : * break; * case UserTaskState.Error : * break; * case UserTaskState.Exited : * break; * case UserTaskState.Obsolete : * break; * } * * } */ ListView listView = view as ListView; Type typeObjectOfListView; if (listView != null) { typeObjectOfListView = ((System.Type)(listView.CollectionSource.ObjectTypeInfo.Type)).UnderlyingSystemType; if (typeObjectOfListView.IsInstanceOfType(typeof(BaseUserTask))) { // Все кнопки запрещаем Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.activate"].Active.SetItemValue("activateEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", false); Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.Nominate"].Active.SetItemValue("NominateEnabled", false); if (Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"] != null) { Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"].Active.SetItemValue("ApproveEnabled", false); } if (Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"] != null) { Frame.GetController <DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"].Active.SetItemValue("DeclainEnabled", false); } } } //if (View.Id == "TaskInvoiceInstanceDefinition_ListView" | View.Id == "BaseUserTask_ListView") { // // Все кнопки запрещаем // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.activate"].Active.SetItemValue("activateEnabled", false); // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.claim"].Active.SetItemValue("claimEnabled", false); // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.start"].Active.SetItemValue("startEnabled", false); // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.stop"].Active.SetItemValue("stopEnabled", false); // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.complete"].Active.SetItemValue("completeEnabled", false); // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["BaseUserTask.Nominate"].Active.SetItemValue("NominateEnabled", false); // if (Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"] != null) { // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Approve"].Active.SetItemValue("ApproveEnabled", false); // } // if (Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"] != null) { // Frame.GetController<DevExpress.ExpressApp.SystemModule.ObjectMethodActionsViewController>().Actions["TaskInvoiceInstanceDefinition.Declain"].Active.SetItemValue("DeclainEnabled", false); // } //} }
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); } } } }
/// <summary> /// Заполнение коллекции пользователей из массива /// </summary> /// <param name="mArray"></param> /// <param name="UserAssociationTypeName"></param> /// <param name="ual"></param> public static void ProcessElements(Array mArray, string UserAssociationTypeName, ref DealWithoutStageTaskInstanceDefinition task, List <AppUser> ual, Session ssn) { foreach (string elem in mArray) { Array mElems = elem.Split(new string[] { CommonConstants.ElemSeparator }, StringSplitOptions.None); if (((string)(mElems.GetValue(0))).Trim() == UserAssociationTypeName) { // Восстанавливаем пользователя по его UserName AppUser au = null; if (!string.IsNullOrEmpty((string)(mElems.GetValue(1)))) { au = UserTaskReference.PopulateUserByUserName((string)(mElems.GetValue(1)), ssn); } if (au != null) { if (ual == null) { ual = new List <AppUser>(); } if (ual.IndexOf(au) == -1) { ual.Add(au); } } } } }
public static void FillUsersFromAdminTaskCollection(DealWithoutStageTaskInstanceDefinitionAdmin tiid, ref DealWithoutStageTaskInstanceDefinition task) { foreach (BaseUserTaskReference butr in tiid.BusinessAdministratorsAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.BusinessAdministrators.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskBusinessAdministrators.Add(task); } } } foreach (BaseUserTaskReference butr in tiid.ExcludedOwnersAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.ExcludedOwners.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskExcludedOwners.Add(task); } } } foreach (BaseUserTaskReference butr in tiid.NotificationRecipientsAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.NotificationRecipients.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskNotificationRecipients.Add(task); } } } foreach (BaseUserTaskReference butr in tiid.PossibleDelegatesAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.PossibleDelegates.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskPossibleDelegates.Add(task); } } } foreach (BaseUserTaskReference butr in tiid.PotentialOwnersAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.PotentialOwners.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskPotentialOwners.Add(task); } } } foreach (BaseUserTaskReference butr in tiid.TaskStakeholdersAdmin) { UserTaskReference userbutr = butr as UserTaskReference; if (userbutr != null) { AppUser AppUserbutr = userbutr.AppUser; if (AppUserbutr != null & task.TaskStakeholders.IndexOf(AppUserbutr) == -1) { AppUserbutr.BaseUserTaskTaskStakeholders.Add(task); } } } // Роли и группы пока не обрабатываем //if (butr.GetType() == typeof(RoleTaskReference)) { // RoleTaskReference rolebutr = (RoleTaskReference)butr; // //AppUser AppUserbutr = rolebutr.AppUser; // //if (ual.IndexOf(AppUserbutr) == -1) ual.Add(AppUserbutr); //} //if (butr.GetType() == typeof(GroupTaskReference)) { // GroupTaskReference groupbutr = (GroupTaskReference)butr; // //AppUser AppUserbutr = userbutr.AppUser; // //if (ual.IndexOf(AppUserbutr) == -1) ual.Add(AppUserbutr); //} }