// Send all queued requests internal void DumpQueue() { // Check for internet connectivity and return immediately if none found if (!DeviceNetworkInformation.IsNetworkAvailable) return; // Get existing event queue if (IsolatedStorageSettings.ApplicationSettings.Contains(MATConstants.SETTINGS_MATEVENTQUEUE_KEY) && IsolatedStorageSettings.ApplicationSettings[MATConstants.SETTINGS_MATEVENTQUEUE_KEY].GetType() == typeof(List<MATUrlBuilder.URLInfo>)) //This only needs to be entered if a request was previously added to the queue { List<MATUrlBuilder.URLInfo> eventQueue = (List<MATUrlBuilder.URLInfo>)IsolatedStorageSettings.ApplicationSettings[MATConstants.SETTINGS_MATEVENTQUEUE_KEY]; List<MATUrlBuilder.URLInfo> sentEvents = new List<MATUrlBuilder.URLInfo>(); if (eventQueue.Count == 0) return; foreach (MATUrlBuilder.URLInfo url in eventQueue) { if (parameters.DebugMode) Debug.WriteLine("Sending MAT event to server..."); MATUrlRequester urlRequester = new MATUrlRequester(parameters, this); //Individual fields are required for each async request urlRequester.SendRequest(url); // Build list of urls to remove sentEvents.Add(url); if (parameters.DebugMode) Debug.WriteLine("MAT request sent"); } // Remove all the urls we sent so collection is not modified in loop foreach (MATUrlBuilder.URLInfo url in sentEvents) { eventQueue.Remove(url); } SaveLocalSetting(MATConstants.SETTINGS_MATEVENTQUEUE_KEY, eventQueue); } }
// Send all queued requests protected internal void DumpQueue() { // Check for internet connectivity and return immediately if none found if (!IsOnline() || parameters.IsTestingOffline) return; lock (syncLock) { int eventQueueSize = GetQueueSize(); if (eventQueueSize > 0) { for (int i = 0; i < eventQueueSize; i++) { string eventQueueKey = MATConstants.SETTINGS_MATEVENTQUEUE_KEY + "_" + i.ToString(); string eventQueueAttemptKey = MATConstants.SETTINGS_MATEVENTQUEUE_ATTEMPT_KEY + "_" + i.ToString(); if (parameters.localSettings.Values.ContainsKey(eventQueueKey)) { string url = (string)parameters.localSettings.Values[eventQueueKey]; int urlAttempt = (int)parameters.localSettings.Values[eventQueueAttemptKey]; if (parameters.DebugMode) Debug.WriteLine("Sending MAT event to server..."); MATUrlRequester urlRequester = new MATUrlRequester(parameters, this); urlRequester.SendRequest(url, urlAttempt); if (parameters.DebugMode) Debug.WriteLine("MAT request sent"); // Decrement queue size SaveLocalSetting(MATConstants.SETTINGS_MATEVENTQUEUESIZE_KEY, (int)parameters.localSettings.Values[MATConstants.SETTINGS_MATEVENTQUEUESIZE_KEY] - 1); } } } } }
// Send all queued requests internal void DumpQueue() { // Check for internet connectivity and return immediately if none found if (!DeviceNetworkInformation.IsNetworkAvailable) { return; } // Get existing event queue if (IsolatedStorageSettings.ApplicationSettings.Contains(SETTINGS_MATEVENTQUEUE_KEY) && IsolatedStorageSettings.ApplicationSettings[SETTINGS_MATEVENTQUEUE_KEY].GetType() == typeof(List <MATUrlBuilder.URLInfo>)) //This only needs to be entered if a request was previously added to the queue { List <MATUrlBuilder.URLInfo> eventQueue = (List <MATUrlBuilder.URLInfo>)IsolatedStorageSettings.ApplicationSettings[SETTINGS_MATEVENTQUEUE_KEY]; List <MATUrlBuilder.URLInfo> sentEvents = new List <MATUrlBuilder.URLInfo>(); if (eventQueue.Count == 0) { return; } foreach (MATUrlBuilder.URLInfo url in eventQueue) { if (parameters.DebugMode) { Debug.WriteLine("Sending MAT event to server..."); } MATUrlRequester urlRequester = new MATUrlRequester(parameters, this); //Individual fields are required for each async request urlRequester.SendRequest(url); // Build list of urls to remove sentEvents.Add(url); if (parameters.DebugMode) { Debug.WriteLine("MAT request sent"); } } // Remove all the urls we sent so collection is not modified in loop foreach (MATUrlBuilder.URLInfo url in sentEvents) { eventQueue.Remove(url); } SaveLocalSetting(SETTINGS_MATEVENTQUEUE_KEY, eventQueue); } }
// Send all queued requests protected internal void DumpQueue() { // Check for internet connectivity and return immediately if none found if (!IsOnline() || parameters.IsTestingOffline) { return; } lock (syncLock) { int eventQueueSize = GetQueueSize(); if (eventQueueSize > 0) { for (int i = 0; i < eventQueueSize; i++) { string eventQueueKey = MATConstants.SETTINGS_MATEVENTQUEUE_KEY + "_" + i.ToString(); string eventQueueDataKey = MATConstants.SETTINGS_MATEVENTQUEUE_DATA_KEY + "_" + i.ToString(); string eventQueueAttemptKey = MATConstants.SETTINGS_MATEVENTQUEUE_ATTEMPT_KEY + "_" + i.ToString(); if (parameters.localSettings.Values.ContainsKey(eventQueueKey)) { string url = (string)parameters.localSettings.Values[eventQueueKey]; string postData = (string)parameters.localSettings.Values[eventQueueDataKey]; int urlAttempt = (int)parameters.localSettings.Values[eventQueueAttemptKey]; if (parameters.DebugMode) { Debug.WriteLine("Sending MAT event to server..."); } MATUrlRequester urlRequester = new MATUrlRequester(parameters, this); urlRequester.SendRequest(url, postData, urlAttempt); if (parameters.DebugMode) { Debug.WriteLine("MAT request sent"); } // Decrement queue size SaveLocalSetting(MATConstants.SETTINGS_MATEVENTQUEUESIZE_KEY, (int)parameters.localSettings.Values[MATConstants.SETTINGS_MATEVENTQUEUESIZE_KEY] - 1); } } } } }