示例#1
0
        internal async void CreateOrUpdateEntryOwnerAsync(Models.EntryOwner entryOwner)
        {
            if (entryOwner.EntryOwnerID != 0)
            {
                var result = await Connection.UpdateAsync(entryOwner);
            }
            else
            {
                // if an entry with the same name exist, don't add it again.
                var potentialExisting = LookupEntryOwner(entryOwner.OwnerName);
                if (potentialExisting?.OwnerName != entryOwner.OwnerName)
                {
                    var result = Connection.InsertAsync(entryOwner);
                    var lookup = LookupEntryOwner(entryOwner.OwnerName);
                    if (lookup?.EntryOwnerID > 0)
                    {
                        entryOwner.EntryOwnerID = lookup.EntryOwnerID;
                    }
                }
                else
                {
                    entryOwner = potentialExisting;
                    return;
                }
            }

            Debug.WriteLine(string.Format("EntryOwnerID {0} 0", entryOwner.EntryOwnerID == 0 ? "is" : "is not"), "Diagnostic");

            if (entryOwner.EntryOwnerID != 0)
            {
                foreach (var item in entryOwner.BloodSugarEntries)
                {
                    item.EntryOwnerID = entryOwner.EntryOwnerID;
                    var updateBloodSugarEntry = CreateOrUpdateBloodSugarEntryAsync(item);
                }
                foreach (var item in entryOwner.Stats)
                {
                    item.EntryOwnerID = entryOwner.EntryOwnerID;
                    var updateStatsEntry = CreateOrUpdateStats(item);
                }
            }
        }
示例#2
0
        /// <summary>
        /// links a collection of BloodSugarEntries to an EntryOwner object
        /// </summary>
        /// <param name="entryOwner">entryOwner to collection information for</param>
        internal async void GetChildEntriesAsync(Models.EntryOwner entryOwner)
        {
            entryOwner.Loading = true;
            List <Models.BloodSugarEntry> childEntries = await Connection.Table <Models.BloodSugarEntry>().Where(e => e.EntryOwnerID == entryOwner.EntryOwnerID).ToListAsync();

            if (childEntries == null)
            {
                Debug.WriteLine("No records returned from Query.");
            }
            else
            {
                Debug.WriteLine("{0} records returned from blood sugar entries query for {1}", childEntries.Count, entryOwner.OwnerName);
            }

            foreach (var entry in childEntries)
            {
                entry.Owner = entryOwner;
                entryOwner.BloodSugarEntries.Add(entry);
            }
            entryOwner.Loading = false;
        }
示例#3
0
        internal void GetChildStats(Models.EntryOwner entryOwner)
        {
            var result     = Connection.Table <Models.BloodSugarStat>().Where(stat => stat.EntryOwnerID == entryOwner.EntryOwnerID).ToListAsync();
            var childStats = result.Result;

            if (childStats == null)
            {
                Debug.WriteLine("No records returned in stat query for {0}", entryOwner.OwnerName);
            }
            else
            {
                Debug.WriteLine("{0} records returned in stat query for {1}.", childStats.Count(), entryOwner.OwnerName);
            }


            foreach (var item in childStats)
            {
                item.Owner = entryOwner;
                entryOwner.Stats.Add(item);
            }
        }
示例#4
0
 internal async void DeleteEntryOwner(Models.EntryOwner entryOwner)
 {
     await Connection.DeleteAsync(entryOwner);
 }