private async Task JournalEntryReceived(JournalEntryDataModel model)
        {
            this.Model = model;

            if (this.Model.BgReadings.Any() == false)
            {
                IsBusy = true;
                try
                {
                    var readingsFromCgm = await this.dataService.GetCgmReadings(this.model.Logged).ConfigureAwait(true);

                    if (readingsFromCgm.Any())
                    {
                        Device.BeginInvokeOnMainThread(() => this.Model.BgReadings.ReplaceRange(readingsFromCgm.OrderBy(x => x.DisplayTime)));
                        Device.BeginInvokeOnMainThread(() => this.Model.StartingBg = this.Model.BgReadings.FirstOrDefault().Reading);
                        await AnalyzeReadings(readingsFromCgm);
                    }
                }
                catch (Exception)
                {
                    Device.BeginInvokeOnMainThread(() => this.Model.BgReadings.Clear());
                }
            }

            IsBusy = false;
        }
Esempio n. 2
0
        public async Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave)
        {
            var retVal = 0;
            var entry  = entryToSave.Save();

            if (entry.Id == 0)
            {
                entryToSave.Id = await this.journalEntries.AddItemAsync(entry);
            }
            else
            {
                await this.journalEntries.UpdateItemAsync(entry);

                entryToSave.Id = entry.Id;
            }

            entryToSave.Dose.Id = await SaveDose(entryToSave.Dose);
            await SaveJournalEntryDose(entry.Id, entryToSave.Dose.Id);

            entryToSave.NutritionalInfo.Id = await SaveNurtritionalInfo(entryToSave.NutritionalInfo);
            await SaveJournalEntryNutritionalInfo(entry.Id, entryToSave.NutritionalInfo.Id);

            foreach (var tag in entryToSave.Tags)
            {
                await SaveJournalEntryTag(entry.Id, tag.Id);
            }

            return(entryToSave);
        }
Esempio n. 3
0
        public async Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave, int userId)
        {
            var serializedItem = JsonConvert.SerializeObject(entryToSave);

            var content = new StringContent(serializedItem, Encoding.UTF8, "application/json");

            var response = await this.client.PostAsync($"journalEntries/v2?userId={userId}", content);

            if (response.IsSuccessStatusCode)
            {
                var responseContent = await response.Content.ReadAsStringAsync();

                var retVal = JsonConvert.DeserializeObject <JournalEntryDataModel>(responseContent);
                entryToSave.Id                 = retVal.Id;
                entryToSave.Dose.Id            = retVal.Dose.Id;
                entryToSave.NutritionalInfo.Id = retVal.NutritionalInfo.Id;
                return(entryToSave);
            }
            else
            {
                var errorContent = await response.Content.ReadAsStringAsync();

                var test = errorContent;
                return(null);
            }
        }
        private async Task ItemTapped(JournalEntryDataModel foodResult)
        {
            IsBusy = true;

            foodResult.IsSelected = true;
            var readings = await this.dataService.GetGlucoseReadings(foodResult.Logged, foodResult.Logged.AddHours(5)).ConfigureAwait(true);

            Device.BeginInvokeOnMainThread(() => GlucoseReadings.ReplaceRange(readings.OrderBy(x => x.DisplayTime)));
            IsBusy = false;
        }
 private void JournalEntryReceived(JournalEntryDataModel obj)
 {
     if (Model != null && Model.Dose != null)
     {
         Model.Dose.PropertyChanged -= this.Dose_PropertyChanged;
     }
     Model         = obj;
     TagSearchText = "";
     Model.Dose.PropertyChanged += this.Dose_PropertyChanged;
 }
Esempio n. 6
0
        public JournalEntryDataModel Copy(JournalEntryDataModel selectedEntry)
        {
            var retVal = new JournalEntryDataModel();

            retVal.Load(selectedEntry.Copy());
            retVal.Dose.Load(selectedEntry.Dose.Copy());
            retVal.NutritionalInfo.Load(selectedEntry.NutritionalInfo.Copy());
            retVal.Tags.AddRange(selectedEntry.Tags.ToList());
            return(retVal);
        }
        private async Task JournalEntryReceived(JournalEntryDataModel searchEntry)
        {
            try
            {
                var entryList = await this.dataService.SearchJournal(searchEntry.Title).ConfigureAwait(true);

                Device.BeginInvokeOnMainThread(() => JournalEntries.ReplaceRange(entryList));
            }
            catch (Exception)
            {
                Device.BeginInvokeOnMainThread(() => JournalEntries.Clear());
            }
        }
        public JournalEntryDataModel CreateEntry(string entryTitle)
        {
            var entry = new JournalEntry
            {
                Title  = entryTitle,
                Logged = DateTime.Now
            };

            var entryModel = new JournalEntryDataModel();

            entryModel.Load(entry);

            return(entryModel);
        }
        private void ItemTapped(JournalEntryDataModel foodResult)
        {
            foreach (var group in LocalSearchResults)
            {
                foreach (var item in group.Items)
                {
                    item.IsSelected = false;
                }
            }

            foodResult.IsSelected = true;
            SelectedEntry         = foodResult;
            RowIsSelected         = true;
        }
Esempio n. 10
0
        public async Task <IEnumerable <JournalEntryDataModel> > SearchJournal(int userId, string searchString)
        {
            var retVal   = new List <JournalEntryDataModel>();//journalEntry/SearchJournal?searchValue=test
            var endPoint = $"journalEntries/V2/?userId={userId}&searchValue={searchString}";

            if (string.IsNullOrEmpty(searchString))
            {
                endPoint = $"journalEntries/V2/?userId={userId}";
            }

            using (var response = await client.GetAsync(endPoint))
            {
                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    var entries = await Task.Run(() => JsonConvert.DeserializeObject <IEnumerable <JournalEntryWebApiModel> >(content));

                    foreach (var entry in entries)
                    {
                        var entryDataModel = new JournalEntryDataModel();
                        entryDataModel.Load(this.journalEntryFactory.Build(entry));
                        entryDataModel.Dose.Load(this.doseFactory.Build(entry.Dose));
                        entryDataModel.NutritionalInfo.Load(this.nutritionalInfoFactory.Build(entry.NutritionalInfo));

                        foreach (var tag in entry.Tags)
                        {
                            var tagDataModel = new TagDataModel();
                            tagDataModel.Load(this.tagFactory.Build(tag));
                            entryDataModel.Tags.Add(tagDataModel);
                        }

                        retVal.Add(entryDataModel);
                    }
                }
                else
                {
                    var content = await response.Content.ReadAsStringAsync();

                    //var message = await Task.Run(() => JsonConvert.DeserializeObject<string>(content));
                    //var test = message;
                }
            }

            return(retVal);
        }
Esempio n. 11
0
 public async Task SaveEntry(JournalEntryDataModel model)
 {
     await this.appDataService.SaveEntry(model, await this.userInfo.GetUserId().ConfigureAwait(false)).ConfigureAwait(false);
 }
Esempio n. 12
0
        public async Task <IEnumerable <JournalEntryDataModel> > SearchJournal(string searchString)
        {
            var retVal = new List <JournalEntryDataModel>();

            var results = from entry in await journalEntries.GetItemsAsync()
                          join entryTag in await journalEntryTags.GetItemsAsync() on entry.Id equals entryTag.JournalEntryId into et
                          from entryTag in et.DefaultIfEmpty(new JournalEntryTag()
            {
                Id = entry.Id, JournalEntryId = 0, TagId = 0
            })
                          join tag in await tags.GetItemsAsync() on entryTag.TagId equals tag.Id into te
                          from tag in te.DefaultIfEmpty(new Tag()
            {
                Id = entryTag.TagId, Description = ""
            })
                          join entryNutrition in await journalEntryNutritionalInfos.GetItemsAsync() on entry.Id equals entryNutrition.JournalEntryId into en
                          from entryNutrition in en.DefaultIfEmpty(new JournalEntryNutritionalInfo()
            {
                Id = entry.Id, JournalEntryId = 0, JournalEntryNutritionalInfoId = 0
            })
                          join nutrition in await nutritionalInfos.GetItemsAsync() on entryNutrition.JournalEntryNutritionalInfoId equals nutrition.Id into n
                          from nutrition in n.DefaultIfEmpty(new NutritionalInfo()
            {
                Id = entryNutrition.JournalEntryNutritionalInfoId, Carbohydrates = 0
            })
                          join entryDose in await journalEntryDoses.GetItemsAsync() on entry.Id equals entryDose.JournalEntryId into ed
                          from entryDose in ed.DefaultIfEmpty(new JournalEntryDose()
            {
                Id = entry.Id, JournalEntryId = 0, DoseId = 0
            })
                          join dose in await doses.GetItemsAsync() on entryDose.DoseId equals dose.Id into d
                          from dose in d.DefaultIfEmpty(new Dose()
            {
                Id = entryDose.DoseId, InsulinAmount = 0, Extended = 0, UpFront = 100, TimeExtended = 0, TimeOffset = 0
            })
                          where entry.Title.ToUpper().Contains(searchString.ToUpper()) || tag.Description.ToUpper().Contains(searchString.ToUpper())
                          select new
            {
                entry,
                tag,
                nutrition,
                dose
            };

            var currentEntry = new JournalEntryDataModel();

            if (results.Any())
            {
                foreach (var result in results)
                {
                    if (result.entry.Id != currentEntry.Id)
                    {
                        if (currentEntry.Id > 0)
                        {
                            retVal.Add(currentEntry);
                        }

                        currentEntry = new JournalEntryDataModel();
                        currentEntry.Load(result.entry);

                        if (result.nutrition.Id > 0)
                        {
                            currentEntry.NutritionalInfo.Load(result.nutrition);
                        }

                        if (result.dose.Id > 0)
                        {
                            currentEntry.Dose.Load(result.dose);
                        }
                    }

                    if (result.tag.Id > 0)
                    {
                        var tagViewModel = new TagDataModel();
                        tagViewModel.Load(result.tag);
                        currentEntry.Tags.Add(tagViewModel);
                    }
                }
            }

            if (currentEntry.Id > 0)
            {
                retVal.Add(currentEntry);
            }

            return(retVal);
        }
Esempio n. 13
0
 public Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave, int userId)
 {
     throw new NotImplementedException();
 }
Esempio n. 14
0
 public async Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave)
 {
     return(await this.appDataService.SaveEntry(entryToSave, await this.userInfo.GetUserId().ConfigureAwait(false)));
 }