Пример #1
0
        // 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);
            }
        }
Пример #2
0
        // 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);
                        }
                    }
                }
            }
        }
Пример #3
0
        // 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);
                        }
                    }
                }
            }
        }