public static DailyMileEntries GetStoredEntries(string fileName) { DailyMileEntries storedEntries = new DailyMileEntries(); try { if (File.Exists(fileName) == true) { using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.None)) { if (fs.Length > 0) { using (BinaryReader binReader = new BinaryReader(fs)) { storedEntries = SerializersJSON.Deserialise<DailyMileEntries>(binReader.ReadBytes((int)fs.Length)); } } } } } catch (VSException ve) { throw ve; } catch (System.Exception ex) { throw new VSException(string.Format("GetStoredEntries FileName({0}) Exception {1}",fileName, ex.Message)); } return storedEntries; }
public static DailyMileEntries MergeEntries(string fileName, DailyMileEntries entries) { BindingListView<DailyMileEntry> fileentries; BindingListView<DailyMileEntry> downloadedEntries; DailyMileEntries murgedEntries; murgedEntries = new DailyMileEntries(); try { //convert downloaded entries to BLV downloadedEntries = new BindingListView<DailyMileEntry>(entries.Entries); //Read stored collection fileentries = new BindingListView<DailyMileEntry>(DailyMileAPI.GetStoredEntries(fileName).Entries); foreach (DailyMileEntry entry in downloadedEntries) { if (fileentries != null) { if (fileentries.Exists("ID", entry.ID) == true) { fileentries.RemoveItems("ID", entry.ID); } } fileentries.Add(entry); } using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None)) { using (BinaryWriter binWriter = new BinaryWriter(fs)) { murgedEntries = new DailyMileEntries(); fileentries.SortDirection = ListSortDirection.Descending; fileentries.SortFields = "ID"; murgedEntries.Entries = fileentries.GetList(); binWriter.Write(SerializersJSON.Serialize<DailyMileEntries>(murgedEntries)); } } } catch (VSException ve) { throw ve; } catch (System.Exception ex) { throw new VSException(string.Format("MergeEntries FileName({0}) Exception {1}", fileName, ex.Message)); } return murgedEntries; }
public DailyMileEntries GetFriendsStream() { string jsonResults; DailyMileEntries entries; entries = new DailyMileEntries(); try { string getAuth = string.Format("{0}/entries/friends.json?oauth_token={1}", _connectionInfo.DailyMileURL, _connectionInfo.ServerKey); jsonResults = RequestData(getAuth); entries = SerializersJSON.Deserialise<DailyMileEntries>(jsonResults); } catch (VSException ve) { throw ve; } catch (System.Exception ex) { throw new VSException(string.Format("GetFriendsStream Exception {0}", ex.Message)); } return entries; }
public DailyMileEntries GetUserEntries(string userName, int since, int until) { string jsonResults; DailyMileEntries entries; entries = new DailyMileEntries(); try { if (LogonDailyMile() == true) { string getAuth = string.Format("{0}/people/{1}/entries.json?until={2}&since={3}&page=1&oauth_token={4}", _connectionInfo.DailyMileURL, userName, until, since, _connectionInfo.ServerKey); jsonResults = RequestData(getAuth); entries = SerializersJSON.Deserialise<DailyMileEntries>(jsonResults); } } catch (VSException ve) { throw ve; } catch (System.Exception ex) { throw new VSException(string.Format("GetUserEntries Name({1}) Exception {0}", userName, ex.Message)); } return entries; }
private void CollectDateRangeEntries(string user, string fileName, DateTime sinceTime, DateTime untilTime) { DailyMileEntries entries; DailyMileEntries retreviedEntries; int since; int until; _logger.EnQueueAppTraceMessage("CollectDateRangeEntries Enter"); DateTime loopDateTime; loopDateTime = sinceTime; entries = new DailyMileEntries(); while (loopDateTime <= untilTime) { loopDateTime = sinceTime.AddDays(5); since = Utilities.DateandTime.DateTimeUtilities.ToUnixUtcTime(sinceTime); until = Utilities.DateandTime.DateTimeUtilities.ToUnixUtcTime(loopDateTime); tsStatus.Text = string.Format("Collecting {0} Entries {1} - {2}", user, sinceTime.ToString(), loopDateTime.ToString()); _logger.EnQueueAppTraceMessage(tsStatus.Text); Application.DoEvents(); retreviedEntries = _APIWrapper.GetUserEntries(user, since, until); if (retreviedEntries.Entries.Count > 0) { tsStatus.Text = string.Format("Collected {0} Entries For {1}", retreviedEntries.Entries.Count, user); _logger.EnQueueAppTraceMessage(tsStatus.Text); Application.DoEvents(); entries.Entries.AddRange(retreviedEntries.Entries); } sinceTime = loopDateTime; loopDateTime.AddDays(5); } if (entries.Entries.Count > 0) { tsStatus.Text = string.Format("Merging User {0} Entries {1}", user, entries.Entries.Count); _logger.EnQueueAppTraceMessage(tsStatus.Text); } else { tsStatus.Text = string.Format("No Entries For User {0}.", user); _logger.EnQueueAppTraceMessage(tsStatus.Text); } Helpers.MergeEntries(fileName, entries); _logger.EnQueueAppTraceMessage("CollectDateRangeEntries Leave"); }