Beispiel #1
0
        public static string  submit_Via_REST(this API_Firebase firebase, API_Firebase.SubmitData submitData)
        {
            var result = "";

            if (submitData.notNull())
            {
                try
                {
                    switch (submitData.Type)
                    {
                    case API_Firebase.Submit_Type.GET:
                        result = firebase.GET();
                        break;

                    case API_Firebase.Submit_Type.ADD:
                        result = firebase.POST(submitData.Data);
                        break;

                    case API_Firebase.Submit_Type.SET:
                        result = firebase.PUT(submitData.Data);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    ex.log("[API_Firebase] [submit_Via_REST] for: {0}".format(submitData));
                }
                if (result.notValid())                          // this could happen in the cases where the SSL failed to connect
                {
                    firebase.offlineQueue().add(submitData);
                }
            }
            return(result);
        }
Beispiel #2
0
 public override Log_Item logItem(Log_Item item)
 {
     if (TM_UserData.Current.firebase_Log_DebugMsg())
     {
         var submitData = new API_Firebase.SubmitData(item, API_Firebase.Submit_Type.ADD);
         apiFirebase.submit(submitData);
     }
     return item;
 }
Beispiel #3
0
 public override Log_Item logItem(Log_Item item)
 {
     if (TM_UserData.Current.firebase_Log_DebugMsg())
     {
         var submitData = new API_Firebase.SubmitData(item, API_Firebase.Submit_Type.ADD);
         apiFirebase.submit(submitData);
     }
     return(item);
 }
Beispiel #4
0
 public UserActivity logActivity(UserActivity userActivity)
 {
     if(TM_UserData.Current.firebase_Log_Activities())
     {
         var submitData = new API_Firebase.SubmitData(userActivity, API_Firebase.Submit_Type.ADD);
         apiFirebase.submit(submitData);
     }
     return userActivity;
 }
Beispiel #5
0
 public UserActivity logActivity(UserActivity userActivity)
 {
     if (TM_UserData.Current.firebase_Log_Activities())
     {
         var submitData = new API_Firebase.SubmitData(userActivity, API_Firebase.Submit_Type.ADD);
         apiFirebase.submit(submitData);
     }
     return(userActivity);
 }
Beispiel #6
0
 public static API_Firebase            add(this API_Firebase firebase, API_Firebase.SubmitData submitData)
 {
     if (firebase.notNull() && submitData.notNull())
     {
         firebase.submitThread_Start();           // start a new SubmitThread (if there isn't one alive already)
         firebase.SubmitQueue.add(submitData);    // queues the request for submition
     }
     return(firebase);
 }
Beispiel #7
0
 public static API_Firebase.SubmitData next(this BlockingCollection <API_Firebase.SubmitData> submitQueue, int maxWait)
 {
     if (submitQueue.notNull())// && submitData.notNull())
     {
         API_Firebase.SubmitData nextItem = null;
         submitQueue.TryTake(out nextItem, maxWait);
         return(nextItem);
     }
     return(null);
 }
Beispiel #8
0
 public Log_Request logRequest()
 {
     var logRequest  = new Log_Request();
     if(TM_UserData.Current.firebase_Log_RequestUrls())
     {
         var submitData = new API_Firebase.SubmitData(logRequest, API_Firebase.Submit_Type.ADD);
         apiFirebase.submit(submitData);
     }
     //apiFirebase.push(logRequest);
     return logRequest;
 }
Beispiel #9
0
        public Log_Request logRequest()
        {
            var logRequest = new Log_Request();

            if (TM_UserData.Current.firebase_Log_RequestUrls())
            {
                var submitData = new API_Firebase.SubmitData(logRequest, API_Firebase.Submit_Type.ADD);
                apiFirebase.submit(submitData);
            }
            //apiFirebase.push(logRequest);
            return(logRequest);
        }
        public void Test_BlockingCollection_Behaviour()
        {
            var submitQueue = new BlockingCollection<API_Firebase.SubmitData>();
            Assert.AreEqual(0, submitQueue.size());

            var submitData1 = new API_Firebase.SubmitData();
            var submitData2 = new API_Firebase.SubmitData();
            var submitData3 = new API_Firebase.SubmitData();
            var submitData4 = new API_Firebase.SubmitData();
            submitQueue.add(submitData1);

            Assert.AreEqual(1, submitQueue.size());

            O2Thread.mtaThread(()=>
                {
                    submitQueue.add(submitData2);
                    10.sleep();
                    submitQueue.add(submitData3);
                    10.sleep();
                    submitQueue.add(submitData4);
                });

            //note how the next() (i.e. the Take() method) will wait for the data to be available
            5.sleep();
            Assert.AreEqual(submitQueue.size(), 2);
            Assert.AreEqual(submitQueue.next(), submitData1);
            Assert.AreEqual(submitQueue.next(), submitData2);
            Assert.AreEqual(submitQueue.next(1), null);          // with 1 ms wait
            Assert.AreEqual(submitQueue.size(), 0);
            Assert.AreEqual(submitQueue.next(), submitData3);
            Assert.AreEqual(submitQueue.size(),0);
            Assert.AreEqual(submitQueue.next(1), null);         // with 1 ms wait
            Assert.AreEqual(submitQueue.next(), submitData4);

            //test nulls
            var currentCount = submitQueue.size();
            submitQueue.add(null);
            Assert.AreEqual(currentCount, submitQueue.size());

            Assert.IsNull((null as BlockingCollection<API_Firebase.SubmitData>).add(null));
            Assert.IsNull((null as BlockingCollection<API_Firebase.SubmitData>).add(new API_Firebase.SubmitData()));
            Assert.IsNull((null as BlockingCollection<API_Firebase.SubmitData>).next());
        }
        public void SubmitData_Ctor()
        {
            var data = new List<object> { 10.randomLetters(),  10.randomLetters(), 10000.random()};
            var type = API_Firebase.Submit_Type.SET;

            var submitData1 = new API_Firebase.SubmitData();
            var submitData2 = new API_Firebase.SubmitData(data, type);

            Assert.AreEqual(submitData1.Data     , null);
            Assert.AreEqual(submitData1.Json_Data, null);
            Assert.AreEqual(submitData1.Type     , API_Firebase.Submit_Type.ADD);

            Assert.AreEqual(submitData2.Data     , data);
            Assert.AreEqual(submitData2.Json_Data, data.json());
            Assert.AreEqual(submitData2.Type     , type);
        }
        public void Test_SubmitThread_Offline_Behaviour()
        {
            Assert.IsFalse (firebase.offline());
            firebase.Offline = true;
            Assert.IsTrue  (firebase.offline());
            Assert.AreEqual(firebase.offlineQueue(), firebase.OfflineQueue);

            var submitData1 = new API_Firebase.SubmitData();
            var submitData2 = new API_Firebase.SubmitData();
            var submitData3 = new API_Firebase.SubmitData();

            Assert.AreEqual(firebase.offlineQueue().size(),0);

            firebase.submit(submitData1);
            firebase.submit(submitData2);
            firebase.SubmitThread.Join();

            if(firebase.offlineQueue().size() >0)
                Assert.AreEqual(firebase.offlineQueue().size(),2);

            firebase.submit(submitData3);
            firebase.submit(submitData2);
            firebase.submit(submitData1);
            firebase.SubmitThread.Join();

            Assert.AreEqual(firebase.offlineQueue().size(), 5);
            Assert.AreEqual(firebase.offlineQueue().next(), submitData1);
            Assert.AreEqual(firebase.offlineQueue().next(), submitData2);
            Assert.AreEqual(firebase.offlineQueue().next(), submitData3);
            Assert.AreEqual(firebase.offlineQueue().next(), submitData2);
            Assert.AreEqual(firebase.offlineQueue().next(), submitData1);
            Assert.AreEqual(firebase.offlineQueue().size(), 0);
        }
        public void Test_SubmitThread_Behaviour()
        {
            Assert.AreEqual(firebase.submitQueue_Size(), 0);
            Assert.IsFalse (firebase.submitThread_Alive());
            var submitData = new API_Firebase.SubmitData("data", API_Firebase.Submit_Type.GET);

            //send one submitData
            firebase.add(submitData);
            if (firebase.submitThread_Alive())
            {
                if(firebase.submitQueue_Size() > 0)
                    firebase.SubmitThread.Join();                       //let the queue handle it
            }

            Assert.AreEqual(firebase.submitQueue_Size(), 0);
            Assert.IsFalse (firebase.submitThread_Alive());

            //send threee submitData
            firebase.add(submitData);
            firebase.add(submitData);
            firebase.add(submitData);
            if (firebase.submitQueue_Size()!=0)                 // in case they were already handled (can happen on UnitTests)
            {
                Assert.AreEqual(firebase.submitQueue_Size(), 3);
                Assert.IsTrue  (firebase.submitThread_Alive());
            }
            //let the queue handle it
            firebase.SubmitThread.join();
            Assert.AreEqual(firebase.submitQueue_Size(), 0);
            Assert.IsFalse (firebase.submitThread_Alive());
        }
Beispiel #14
0
 public static BlockingCollection <API_Firebase.SubmitData> add(this BlockingCollection <API_Firebase.SubmitData> submitQueue, API_Firebase.SubmitData submitData)
 {
     if (submitQueue.notNull() && submitData.notNull())
     {
         submitQueue.Add(submitData);
     }
     return(submitQueue);
 }
Beispiel #15
0
 public static API_Firebase            submit(this API_Firebase firebase, API_Firebase.SubmitData submitData)
 {
     return(firebase.add(submitData));
 }