Beispiel #1
0
        /// <summary>
        /// Gets all student organizations from the Engage API.
        /// </summary>
        /// <param name="engageApi">The engage API object.</param>
        /// <returns>
        /// A list of organizations.
        /// </returns>
        private static IEnumerable <Organization> GetOrganizations(IEngageApi engageApi)
        {
            var result = new List <Organization>();

            var currentPage = 1;
            int totalPages  = 0;

            do
            {
                var data = GetOrganizationAPIData(engageApi, currentPage);
                if (data != null)
                {
                    totalPages = data.TotalPages;

                    // LogInfoMessage($"Getting organization data - page {currentPage} of {totalPages}.");

                    if (data != null && data.Items != null && data.Items.Count > 0)
                    {
                        result.AddRange(data.Items);
                    }

                    currentPage++;
                }
            } while (currentPage <= totalPages);


            return(result.AsEnumerable());
        }
Beispiel #2
0
 /// <summary>
 /// Gets the organization API data.
 /// </summary>
 /// <param name="engageApi">The engage API.</param>
 /// <param name="currentPage">The current page.</param>
 /// <returns></returns>
 private static EngageObject <Organization> GetOrganizationAPIData(IEngageApi engageApi, int currentPage, int errorCount = 0)
 {
     try
     {
         return(engageApi.GetOrganizations(0, string.Empty, false, string.Empty, string.Empty, string.Empty, null, null, currentPage, API_PAGING_COUNT));
     }
     catch (Exception ex)
     {
         if (errorCount <= 0)
         {
             SleepAPIRequests();
             return(GetOrganizationAPIData(engageApi, currentPage, 1));
         }
         else
         {
             // LOG THE ERROR
             return(null);
         }
     }
 }