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; }
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); }
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; }
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; }
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); }
public async Task SaveEntry(JournalEntryDataModel model) { await this.appDataService.SaveEntry(model, await this.userInfo.GetUserId().ConfigureAwait(false)).ConfigureAwait(false); }
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); }
public Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave, int userId) { throw new NotImplementedException(); }
public async Task <JournalEntryDataModel> SaveEntry(JournalEntryDataModel entryToSave) { return(await this.appDataService.SaveEntry(entryToSave, await this.userInfo.GetUserId().ConfigureAwait(false))); }