/// <summary>
 /// Does sanity checking and error logging on missing data in schedules
 /// </summary>
 /// <param name="schedule"></param>
 private void SanityCheckSchedule(SiteSchedule schedule, XmlNode xmlNode)
 {
     if (string.IsNullOrWhiteSpace(schedule.Id))
     {
         _onlineSession.StatusLog.AddError(schedule.ScheduleName + " is missing a schedule ID. Not returned from server! xml=" + xmlNode.OuterXml);
     }
 }
Beispiel #2
0
    /// <summary>
    /// Get a page's worth of Schedules listing
    /// </summary>
    /// <param name="onlineSchedules"></param>
    /// <param name="pageToRequest">Page # we are requesting (1 based)</param>
    /// <param name="totalNumberPages">Total # of pages of data that Server can return us</param>
    private void ExecuteRequest_ForPage(List <SiteSchedule> onlineSchedules, int pageToRequest, out int totalNumberPages)
    {
        int pageSize = _onlineUrls.PageSize;
        //Create a web request, in including the users logged-in auth information in the request headers

        var urlQuery = _onlineUrls.Url_SchedulesList(_onlineSession, pageSize, pageToRequest);

        _onlineSession.StatusLog.AddStatus("Web request: " + urlQuery, -10);
        XmlDocument xmlDoc = ResourceSafe_PerformWebRequest_GetXmlDocument(urlQuery, "get schedules list");
        //var webRequest = CreateLoggedInWebRequest(urlQuery);
        //webRequest.Method = "GET";
        //var response = GetWebReponseLogErrors(webRequest, "get schedules list");
        //var xmlDoc = GetWebResponseAsXml(response);

        //Get all the schedule nodes
        var nsManager = XmlHelper.CreateTableauXmlNamespaceManager("iwsOnline");
        var schedules = xmlDoc.SelectNodes("//iwsOnline:schedule", nsManager);

        //Get information for each of the data sources
        foreach (XmlNode itemXml in schedules)
        {
            try
            {
                var thisSchedule = new SiteSchedule(itemXml);
                onlineSchedules.Add(thisSchedule);

                SanityCheckSchedule(thisSchedule, itemXml);
            }
            catch
            {
                AppDiagnostics.Assert(false, "Schedule parse error");
                _onlineSession.StatusLog.AddError("Error parsing schedule: " + itemXml.OuterXml);
            }
        } //end: foreach

        //-------------------------------------------------------------------
        //Get the updated page-count
        //-------------------------------------------------------------------
        totalNumberPages = DownloadPaginationHelper.GetNumberOfPagesFromPagination(
            xmlDoc.SelectSingleNode("//iwsOnline:pagination", nsManager),
            pageSize);
    }
 /// <summary>
 /// Adds a schedule to the list
 /// </summary>
 /// <param name="newSchedule"></param>
 internal void AddSchedule(SiteSchedule newSchedule)
 {
     _schedules.Add(newSchedule);
 }