Beispiel #1
0
 //Call this method to update
 public void Update()
 {
     while (Empty == false) //Note - opportunity for efficiency... >:)
     {
         //step 1: Remove old data from the collections.
         lock (coinLock)
         {
             if (CurrentData != null && CurrentData.Count > 0)
             {
                 //Step 1: Remove old data from the collections.
                 CurrentData.TakeAndBreak(x => x.LastUpdate > DateTime.UtcNow.AddMinutes(-MinuteInterval));
                 //Step 2: Get new data from the database and add it to the collections.
                 DataCalls.GetRecentCurrentData(Instrument.InstrumentID, MinuteInterval, CurrentDataIndex).ForEach(x => CurrentData.Add(x));
                 CurrentDataIndex = this.CurrentData.Max(x => x.CurrentID);
             }
         }
         lock (coinAggLock)
         {
             if (CurrentAggData != null && CurrentAggData.Count > 0)
             {
                 CurrentAggData.TakeAndBreak(x => x.LastUpdate > DateTime.UtcNow.AddMinutes(-MinuteInterval));
                 DataCalls.GetRecentCurrentAggData(Instrument.InstrumentID, MinuteInterval, CurrentAggDataIndex).ForEach(x => CurrentAggData.Add(x));
                 CurrentAggDataIndex = this.CurrentAggData.Max(x => x.CurrentAggID);
             }
         }
         Thread.Sleep(50000);
     }
 }