Exemple #1
0
        public static Queue <StoredRequest> CreateQueueStoredRequests(int count)
        {
            Queue <StoredRequest> srQueue = new Queue <StoredRequest>();

            for (int a = 0; a < count; a++)
            {
                StoredRequest sr = CreateStoredRequest(a % 10);
                srQueue.Enqueue(sr);
            }

            return(srQueue);
        }
        public void ComparingEntitiesStoredRequest()
        {
            for (int i = 0; i < 3; i++)
            {
                long          ts  = TimeHelper.UnixTimeNow();
                StoredRequest sr1 = TestHelper.CreateStoredRequest(i);
                StoredRequest sr2 = TestHelper.CreateStoredRequest(i);
                StoredRequest sr3 = TestHelper.CreateStoredRequest(i + 1);

                Assert.Equal(sr1, sr2);
                Assert.NotEqual(sr1, sr3);
            }
        }
        private async Task <bool> UploadStoredRequests()
        {
            StoredRequest sr = null;

            lock (sync)
            {
                if (uploadInProgress)
                {
                    return(true);
                }
                uploadInProgress = true;

                if (StoredRequests.Count > 0)
                {
                    sr = StoredRequests.Peek();
                    Debug.Assert(sr != null);
                }
            }

            if (sr != null)
            {
                ResultResponse resultResponse = await Api.Instance.SendStoredRequest(ServerUrl, sr);

                if (resultResponse != null && resultResponse.IsSuccess)
                {
                    lock (sync)
                    {
                        uploadInProgress = false;

                        //remove the excecuted request
                        StoredRequest srd = null;
                        try { srd = StoredRequests.Dequeue(); } catch { }
                        Debug.Assert(srd != null);
                        Debug.Assert(srd == sr);

                        bool success = SaveStoredRequests().Result;//todo, handle this in the future
                    }
                    return(true);
                }
                else
                {
                    lock (sync) { uploadInProgress = false; }
                    return(false);
                }
            }
            else
            {
                lock (sync) { uploadInProgress = false; }
                return(true);
            }
        }
        internal async Task AddRequest(String networkRequest, bool isIdMerge = false)
        {
            Debug.Assert(networkRequest != null);

            if (networkRequest == null)
            {
                return;
            }

            lock (sync)
            {
                StoredRequest sr = new StoredRequest(networkRequest, isIdMerge);
                StoredRequests.Enqueue(sr);
                SaveStoredRequests();
            }
        }
        public void ComparingEntitiesStoredRequestNull()
        {
            long          ts  = TimeHelper.UnixTimeNow();
            StoredRequest sr1 = TestHelper.CreateStoredRequest(0);
            StoredRequest sr2 = TestHelper.CreateStoredRequest(0);

            Assert.Equal(sr1, sr2);
            sr1.Request = null;
            sr2.Request = null;
            Assert.Equal(sr1, sr2);

            sr1 = TestHelper.CreateStoredRequest(0);
            sr2 = TestHelper.CreateStoredRequest(0);

            sr2.Request = null;
            Assert.NotEqual(sr1, sr2);
            Assert.NotEqual(sr2, sr1);
        }
Exemple #6
0
        /// <summary>
        /// Stores tables request from POST request and returns token back
        /// </summary>
        /// <param name="request">Request to store</param>
        /// <returns>Token value</returns>
        public static string StoreRequest(PowerTableRequest request)
        {
            _isDirty = true;
            string token  = null;
            bool   result = false;

            while (!result)
            {
                token  = Guid.NewGuid().ToString();
                result = StoredRequests.TryAdd(token, request);
            }
            if (!UseSingleRequestTokens)
            {
                lock (ExpirationTokens)
                {
                    StoredRequest rq = new StoredRequest()
                    {
                        ExpireDate = DateTime.Now.Add(TokenTimeToLive), Token = token
                    };
                    ExpirationTokens.Add(rq);
                }
            }
            return(token);
        }
        public static StoredRequest CreateStoredRequest(int index)
        {
            StoredRequest br = new StoredRequest(v[index]);

            return(br);
        }
Exemple #8
0
        private void items_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            StoredRequest item = (sender as ListBox).SelectedItem as StoredRequest;

            ViewModel.AddRequest(item.Clone());
        }