/// <summary> /// Fills an Download list object. /// </summary> private static ParaEntityList <TFolder> FillList(ParaCredentials creds, TQuery query) { var folderList = new ParaEntityList <TFolder>(); var ar = ApiCallFactory.ObjectGetList <TFolder>(creds, query.BuildQueryArguments()); if (ar.HasException == false) { folderList = ParaEntityParser.FillList <TFolder>(ar.XmlReceived); } folderList.ApiCallResponse = ar; // Checking if the system needs to recursively call all of the data returned. if (query.RetrieveAllRecords) { bool continueCalling = true; while (continueCalling) { if (folderList.TotalItems > folderList.Data.Count) { // We still need to pull data // Getting next page's data query.PageNumber = query.PageNumber + 1; ar = ApiCallFactory.ObjectGetList <TFolder>(creds, query.BuildQueryArguments()); var objectlist = ParaEntityParser.FillList <TFolder>(ar.XmlReceived); if (objectlist.Data.Count == 0) { continueCalling = false; } folderList.Data.AddRange(objectlist.Data); folderList.ResultsReturned = folderList.Data.Count; folderList.PageNumber = query.PageNumber; } else { // That is it, pulled all the items. continueCalling = false; folderList.ApiCallResponse = ar; } } } return(folderList); }
private static ParaEntityList <ParaObjects.Chat> RetrieveAllEntitites(ParaCredentials creds, ChatQuery query) { var chatList = new ParaEntityList <ParaObjects.Chat>(); var ar = ApiCallFactory.ObjectGetList <ParaObjects.Chat>(creds, query.BuildQueryArguments()); if (ar.HasException == false) { chatList = ParaEntityParser.FillList <ParaObjects.Chat>(ar.XmlReceived); } chatList.ApiCallResponse = ar; bool continueCalling = true; while (continueCalling) { if (chatList.TotalItems > chatList.Data.Count) { // We still need to pull data // Getting next page's data query.PageNumber = query.PageNumber + 1; ar = ApiCallFactory.ObjectGetList <ParaObjects.Chat>(creds, query.BuildQueryArguments()); if (ar.HasException == false) { chatList.Data.AddRange(ParaEntityParser.FillList <ParaObjects.Chat>(ar.XmlReceived).Data); chatList.ResultsReturned = chatList.Data.Count; chatList.PageNumber = query.PageNumber; } else { continueCalling = false; chatList.ApiCallResponse = ar; break; } } else { // That is it, pulled all the items. continueCalling = false; chatList.ApiCallResponse = ar; } } return(chatList); }
private static ParaEntityList <ParaObjects.Chat> FillList(ParaCredentials creds, Boolean includeTranscripts, ChatQuery query) { if (query == null) { query = new ChatQuery(); } var chatList = new ParaEntityList <ParaObjects.Chat>(); // Checking if the system needs to recursively call all of the data returned. if (query.RetrieveAllRecords) { chatList = RetrieveAllEntitites(creds, query); } else { var ar = ApiCallFactory.ObjectGetList <ParaObjects.Chat>(creds, query.BuildQueryArguments()); if (ar.HasException == false) { chatList = ParaEntityParser.FillList <ParaObjects.Chat>(ar.XmlReceived); } chatList.ApiCallResponse = ar; } if (includeTranscripts) { var service = new ParaService(creds); //Fetch transcripts for each chat. Each request is another API call... foreach (var chat in chatList) { chat.Transcript = service.GetChatTranscript(chat.Id); } } return(chatList); }