/// <summary>
        /// Создание новой задачи. Вызывается из присоединённого административного объекта, который также назнает свойства
        /// новорожденной задаче
        /// </summary>
        public static DealWithoutStageTaskInstanceDefinition create(Session ssn, TaskParameters tp)
        {
            DealWithoutStageTaskInstanceDefinition tid = new DealWithoutStageTaskInstanceDefinition(ssn);

            tid._TaskInitiator = null; // Если создаётся через интерфейс, то TaskInitiator заполняется, иначе - обнуляется
            return(tid);
        }
示例#2
0
        /// <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;
        }
示例#3
0
        public override void create()
        {
            // Параметры формируются здесь исключительно для демонстрации последующиего алгоритма разбора в методе SetTaskParameters
            TaskParameters tp = GetTaskParams();

            // Создание задачи (вызов new)
            DealWithoutStageTaskInstanceDefinition tid = DealWithoutStageTaskInstanceDefinition.create(this.Session, tp);

            SetTaskParameters(ref tid, this, tp);

            // Вызываем activate() для созданной задачи
            tid.activate();
        }
示例#4
0
        /// <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);
            //    }

            //}
        }
示例#6
0
        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);
                    }
                }
            }
        }
示例#7
0
        /// <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);
                        }
                    }
                }
            }
        }
示例#8
0
        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);
            //}
        }