Esempio n. 1
0
        public void deactivateAllMembers(QueueInfo queue, List <QueueMember> currentQueueMembers)
        {
            try
            {
                int deactivatedCount = 0;

                // Send Patch request to apply the changes. No more than 100 agents can be deactivated in a single request
                for (int i = 0; i < currentQueueMembers.Count; i = i + 100)
                {
                    var queueMembersToDeactivate = currentQueueMembers.Skip(i).Take(100).ToList();
                    var queueMemberEntityListing = routingApi.PatchRoutingQueueUsers(queue.Id, queueMembersToDeactivate);
                    deactivatedCount += queueMembersToDeactivate.Count;

                    /*foreach (var queueMember in queueMembersToDeactivate)
                     * {
                     *  AddLog($"{queueMember.Name} has been deactivated from {queue.Name}   -   {queueMember.Id}");
                     * }*/
                }

                var    userApi = new UsersApi();
                string queueId = queue.Id;

                // Mark all current queue members as unjoined
                foreach (var queueMember in currentQueueMembers)
                {
                    queueMember.Joined = false;

                    string    userId    = queueMember.Id;
                    UserQueue userQueue = new UserQueue();
                    userQueue.Joined = false;
                    var test = userApi.PatchUserQueue(queueId, userId, userQueue);

                    AddLog($"{queueMember.Name} has been deactivated from {queue.Name}   -   {queueMember.Id}");
                }



                AddLog($"{deactivatedCount} members have been deactivated from {queue.Name}");
            }
            catch (Exception ex)
            {
                AddLog($"Error in btnDeactivate_Click: {ex.Message}");
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }