public void PostPresencedefinitionsTest()
        {
            // TODO: add unit test for the method 'PostPresencedefinitions'
            OrganizationPresence body = null; // TODO: replace null with proper value
            var response = instance.PostPresencedefinitions(body);

            Assert.IsInstanceOf <OrganizationPresence> (response, "response is OrganizationPresence");
        }
        public void PutPresenceIdTest()
        {
            // TODO: add unit test for the method 'PutPresenceId'
            string presenceId         = null; // TODO: replace null with proper value
            OrganizationPresence body = null; // TODO: replace null with proper value
            var response = instance.PutPresenceId(presenceId, body);

            Assert.IsInstanceOf <OrganizationPresence> (response, "response is OrganizationPresence");
        }
        public IEnumerator LoadPresences(int pageNumber = 1)
        {
            var uri = "https://api.mypurecloud.com/api/v2/presencedefinitions?pageSize=100&pageNumber=" + pageNumber;

            if (this.accessToken == null)
            {
                Debug.LogWarning("Access token is not set!");
                yield return(null);
            }

            Debug.Log("[GET] " + uri);
            var myWebRequest = UnityWebRequest.Get(uri);

            myWebRequest.SetRequestHeader("Authorization", "bearer " + this.accessToken);
            yield return(myWebRequest.SendWebRequest());

            if (myWebRequest.isHttpError || myWebRequest.isNetworkError)
            {
                Debug.LogError(myWebRequest.error);
            }


            var presences = JsonConvert.DeserializeObject <OrganizationPresenceEntityListing>(myWebRequest.downloadHandler.text);

            foreach (var presence in presences.Entities)
            {
                Presences.Add(presence.Id, presence);
            }
            Debug.Log("Got " + presences.Entities.Count + " presences, total: " + this.Presences.Count);
            if (PresenceCountChanged != null)
            {
                PresenceCountChanged(Presences.Count);
            }

            if (presences.PageNumber < presences.PageCount)
            {
                Debug.Log("Getting more presences");
                yield return(LoadPresences((int)presences.PageNumber + 1));
            }
            else
            {
                foreach (var presence in Presences)
                {
                    //Debug.Log("[PRESENCE] " + presence.Key + " " + presence.Value.DefaultLabel);
                    if (presence.Value.SystemPresence.ToLowerInvariant() == "offline")
                    {
                        _offlinePresence = presence.Value;
                    }
                }
            }
        }
 public void Init()
 {
     instance = new OrganizationPresence();
 }