コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: Helpers.cs プロジェクト: Romonaga/DailyMile-Backup
        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;
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }
コード例 #5
0
ファイル: frmMain.cs プロジェクト: Romonaga/DailyMile-Backup
        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");
        }