protected void RemoveHuntGroup(string group)
        {
            OAIAgentModel agent = GetAgent(Agent());

            if (null != agent)
            {
                agent.AddGroup(HuntGroup());
            }

            OAIDeviceModel device = GetDevice(Extension());

            if (null != device)
            {
                device.AddGroup(HuntGroup());
            }

            OAIHuntGroupModel huntGroup = GetHuntGroup(group);

            if (null == group)
            {
                huntGroup = new OAIHuntGroupModel();
                huntGroup.HuntGroup = group;
            }

            huntGroup.RemoveAgent(Agent());
            huntGroup.RemoveDevice(Extension());

            OAIHuntGroupsController
                .Relay()
                .Push(group, huntGroup);
        }
        public new void Process()
        {
            string device = Extension();
            string agent = Agent();

            // Set the agent with the logged in extension
            SetAgent(agent, device);

            // Set the extension with the logged in agent
            SetExtension(device, agent);

            // Set Agent as available
            SetAvailable(1);

            string group = HuntGroup();

            // Add logged in hunt group
            AddHuntGroup(group);

            OAIHuntGroupModel model = OAIHuntGroupsController
                .Relay()
                .Peek(group);

            if (null == model)
            {
                model = new OAIHuntGroupModel();
            }

            model.AddAgent(agent);
            model.AddDevice(device);

            OAIHuntGroupsController
                .Relay()
                .Push(group, model);
        }
        public void HuntGroup(int index)
        {
            string huntGroup = Part(index++);

            OAIHuntGroupModel model = GetHuntGroup(huntGroup);

            if (null == model)
            {
                model = new OAIHuntGroupModel();
                model.HuntGroup = huntGroup;
            }

            int mask = EntityFieldMask();

            if (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_USER ==
                (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_USER & mask))
            {
                model.Username = Part(index++);
            }

            if (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_DESC ==
                (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_DESC & mask))
            {
                model.Description = Part(index++);
            }

            if (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_HUNT_GROUP ==
                (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_HUNT_GROUP & mask))
            {
                model.HuntGroupType = IntPart(index++);
            }

            if (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_MEMBERS ==
                (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_MEMBERS & mask))
            {
                model.NumberOfMembers = IntPart(index++);
            }

            if (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_MAILBOX ==
                (OAIQueryListExtended.MASK_HUNT_GROUP_LIST_MAILBOX & mask))
            {
                model.MailboxNodeNumber = IntPart(index++);
            }

            OAIHuntGroupsController
                .Relay()
                .Push(huntGroup, model);
        }
        public new void Process()
        {
            int offset = EntityOffset();
            int count = EntityCount() * SegmentCount();
            int segments = SegmentCount();

            OAIQueryHuntGroup cmd = (OAIQueryHuntGroup)Cmd;
            Group = cmd.GetHuntGroup();
            Master = cmd.GetMaster();

            Model = OAIHuntGroupsController
                .Relay()
                .Peek(Group);

            if (null == Model)
            {
                Model = new OAIHuntGroupModel();
            }

            for (int i = offset; i < offset+count; i += segments)
            {
                SetAttributes(i);
            }

            OAIHuntGroupsController
                .Relay()
                .Push(Group, Model);
        }