Esempio n. 1
0
 internal static ClientDataSet.GroupsInstancesActionsDataTable GetGroupsInstancesActionsByGroupIdInstanceId(Guid organizationId, Guid groupId, Guid instanceId)
 {
     using (GroupsInstancesActionsTableAdapter adapter = new GroupsInstancesActionsTableAdapter(OrganizationProvider.GetConnectionString(organizationId)))
     {
         return(adapter.GetGroupsInstancesActionsByGroupIdInstanceId(organizationId, groupId, instanceId));
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Modifies the actions list associated with specified group role in specified instance.
        /// </summary>
        /// <param name="groupId">The group's identifier.</param>
        /// <param name="instanceId">The instance's identifier.</param>
        /// <param name="actionIdList">The ArrayList that contains identifiers of actions.</param>
        internal static void GroupsInstancesActionsAcceptChanges(Guid groupId, Guid instanceId, ArrayList actionIdList)
        {
            UserContext user = UserContext.Current;

            Guid roleId = GetGroupInstanceRole(user.OrganizationId, groupId, instanceId);

            if (roleId == Guid.Empty)
            {
                return;
            }

            ArrayList list = ActionProvider.GetActionIdListByRoleId(roleId);

            ClientDataSet.GroupsInstancesActionsDataTable giaTable = null;
            using (GroupsInstancesActionsTableAdapter adapter = new GroupsInstancesActionsTableAdapter(OrganizationProvider.GetConnectionString(user.OrganizationId)))
            {
                giaTable = adapter.GetGroupsInstancesActionsByGroupIdInstanceId(user.OrganizationId, groupId, instanceId);

                foreach (ClientDataSet.GroupsInstancesActionsRow actionRow in giaTable)
                {
                    Guid actionId = actionRow.ActionId;
                    if (actionIdList.Contains(actionId))
                    {
                        if (!actionRow.Enabled)
                        {
                            actionRow.Delete();
                        }
                        else
                        {
                            actionIdList.Remove(actionId);
                        }
                    }
                    else if (actionRow.Enabled)
                    {
                        actionRow.Delete();
                    }
                }

                ClientDataSet.GroupsInstancesActionsRow newActionRow = null;

                foreach (Guid actionId in list)
                {
                    if (!actionIdList.Contains(actionId))
                    {
                        newActionRow = giaTable.FindByGroupIdInstanceIdActionId(groupId, instanceId, actionId);
                        if (newActionRow == null)
                        {
                            newActionRow = giaTable.NewGroupsInstancesActionsRow();

                            newActionRow.GroupId    = groupId;
                            newActionRow.InstanceId = instanceId;
                            newActionRow.ActionId   = actionId;
                            newActionRow.Enabled    = false;

                            giaTable.AddGroupsInstancesActionsRow(newActionRow);
                        }
                        else if (newActionRow.Enabled)
                        {
                            newActionRow.Enabled = false;
                        }
                    }
                    else
                    {
                        actionIdList.Remove(actionId);
                    }
                }

                foreach (Guid actionId in actionIdList)
                {
                    if (!list.Contains(actionId))
                    {
                        newActionRow = giaTable.FindByGroupIdInstanceIdActionId(groupId, instanceId, actionId);
                        if (newActionRow == null)
                        {
                            newActionRow = giaTable.NewGroupsInstancesActionsRow();

                            newActionRow.GroupId    = groupId;
                            newActionRow.InstanceId = instanceId;
                            newActionRow.ActionId   = actionId;
                            newActionRow.Enabled    = true;

                            giaTable.AddGroupsInstancesActionsRow(newActionRow);
                        }
                        else if (!newActionRow.Enabled)
                        {
                            newActionRow.Enabled = true;
                        }
                    }
                }

                adapter.Update(giaTable);
            }

            RemoveGroupInstanceActionIdListFromCache(groupId, instanceId);
        }