/// <summary> /// Add an item to the list and then to the offline file. /// </summary> /// <param name="item"></param> /// <returns></returns> public async Task <bool> AddItemAsync(NutritionItem item) { _nutritionItems.Add(item); await Task.Run(() => UpdateLocalFiles()); return(await Task.FromResult(true)); }
private void OnItemClickedCommandExecute(object param) { int id = Convert.ToInt32(param); NutritionItem item = _nutritionItems.Where(x => x.ID == id).FirstOrDefault(); App.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(new NutritionItemDetailsPage(item))); }
private void LoadItemList(object item) { NutritionItemCategorie categorieItem = item as NutritionItemCategorie; NutritionItem nutritionItem = item as NutritionItem; if (categorieItem != null) { if (categorieItem.ListOfSubCategories.Count >= 1) { // If there are sub categories in the list, show them NutritionItemCategories = categorieItem.ListOfSubCategories; IsItemListViewVisible = false; IsCategorieListViewVisible = true; } else { // If there are no more categories, show the nutrition items Task.Run(() => LoadNutritionItems(categorieItem.ListOfNutritionItemIDs)); IsItemListViewVisible = true; IsCategorieListViewVisible = false; } } else if (nutritionItem != null) { // Show detail page of item // Add to navigation stack } }
/// <summary> /// Update a NutritionItem /// </summary> /// <param name="item"></param> /// <returns></returns> public async Task <bool> UpdateItemAsync(NutritionItem item) { var oldItem = _nutritionItems.Where((NutritionItem arg) => arg.ID == item.ID).FirstOrDefault(); _nutritionItems.Remove(oldItem); _nutritionItems.Add(item); return(await Task.FromResult(true)); }
public override void OnNavigatingTo(object param) { var item = param as NutritionItem; if (item == null) { return; } Item = item; Title = Item.Name; }
public async Task <bool> AddItemAsync(NutritionItem item) { if (item == null || !IsConnected) { return(false); } var serializedItem = JsonConvert.SerializeObject(item); var response = await client.PostAsync($"api/item", new StringContent(serializedItem, Encoding.UTF8, "application/json")); return(response.IsSuccessStatusCode); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> public static void GenerateCategories(string categories, NutritionItem nutritionItem) { IList <int> listOfCategorieIndexes = new List <int>(); var split = categories.Split(';'); foreach (var x in split) { var sub_split = x.Split('/'); categorieIndex++; NutritionItemCategorie categorie = new NutritionItemCategorie(categorieIndex); categorie.Name = sub_split[0]; var cat = ItemCategories.Where(x => x.Name == categorie.Name).FirstOrDefault(); if (cat == null) { ItemCategories.Add(categorie); } else { categorie = cat; } nutritionItem.Categories.Add(categorie.ID); categorie.ListOfNutritionItemIDs.Add(nutritionItem.ID); if (sub_split.Length <= 1) { continue; } categorieIndex++; NutritionItemCategorie sub_categorie = new NutritionItemCategorie(categorieIndex); sub_categorie.Name = sub_split[1]; sub_categorie.ParentID = categorie.ID; var sub_cat = categorie.ListOfSubCategories.Where(x => x.Name == sub_categorie.Name).FirstOrDefault(); if (sub_cat == null) { categorie.ListOfSubCategories.Add(sub_categorie); } else { sub_categorie = sub_cat; } nutritionItem.Categories.Append(sub_categorie.ID); sub_categorie.ListOfNutritionItemIDs.Add(nutritionItem.ID); } }
private void addNewItemButton_Click(object sender, EventArgs e) { if (String.IsNullOrWhiteSpace(nameTextBox.Text)) { nameTextBox.ForeColor = System.Drawing.Color.Red; MessageBox.Show("You must enter a value for the name field.", "", MessageBoxButtons.OK); return; } if (helper.isFieldEmpty(textBoxesWithoutName)) { MessageBox.Show("You must enter a value for all available fields.", "", MessageBoxButtons.OK); return; } var day = addOrUpdateCurrentDay(dateTimePicker.Text.Replace(" ", "")); var textboxvalues = helper.parseTextBoxValues(textBoxesWithoutName); if (textboxvalues == null) { return; } var amount = helper.parseDouble(amountTextbox.Text); if (amount == null) { amountTextbox.ForeColor = System.Drawing.Color.Red; return; } var nutrition = new NutritionItem(nameTextBox.Text, day, textboxvalues, amount.Value); _nutritionRepo.Add(nutrition); var result = _dayRepository.Update(day); if (result == null || typeof(WholeDay) != result.GetType()) { Debug.WriteLine($"Could not update that item. Returned result was; {result}"); } currentDayItems.Items.Add(new FoodBoxItem(nutrition.calories, nutrition.fats, nutrition.saturatedFats, nutrition.carbohydrates, nutrition.sugars, nutrition.protein, nutrition.salt, nutrition.fibre, nutrition.name, nutrition.NutritionItemId, nutrition.amount, nutrition.dateTime)); showTotals(); resetFields(); }
public async Task <bool> UpdateItemAsync(NutritionItem item) { if (item == null || item.ID == null || !IsConnected) { return(false); } var serializedItem = JsonConvert.SerializeObject(item); var buffer = Encoding.UTF8.GetBytes(serializedItem); var byteContent = new ByteArrayContent(buffer); var response = await client.PutAsync(new Uri($"api/item/{item.ID}"), byteContent); return(response.IsSuccessStatusCode); }
public void Add(NutritionItem item) { _db.Nutrition.Add(item); _db.SaveChanges(); }
public static NutritionItem ConvertRow(DataRow header, DataRow row) { NutritionItem nutriItem = new NutritionItem(); for (int i = 0; i < row.ItemArray.Length; i++) { if (header.ItemArray[i].Equals("ID")) { nutriItem.ID = Convert.ToInt32(row.ItemArray[i]); } else if (header.ItemArray[i].Equals("Name")) { nutriItem.Name = row.ItemArray[i].ToString(); } else if (header.ItemArray[i].Equals("Synonyme")) { nutriItem.Synonyms = row.ItemArray[i].ToString().Split(';'); } else if (header.ItemArray[i].Equals("Kategorie")) { GenerateCategories(row.ItemArray[i].ToString(), nutriItem); } else if (header.ItemArray[i].Equals("Bezugseinheit")) { if (row.ItemArray[i].ToString().Equals("pro 100 ml")) { nutriItem.ReferenceValue = Core.Enums.ReferenceUnitsEnum.Milliliters; } else if (row.ItemArray[i].ToString().Equals("pro 100g essbarer Anteil")) { nutriItem.ReferenceValue = Core.Enums.ReferenceUnitsEnum.Grams; } } else if (header.ItemArray[i].Equals("Energie, Kilojoule")) { nutriItem.KiloJoule = Convert.ToDouble(row.ItemArray[i]); } else if (header.ItemArray[i].Equals("Energie, Kalorien")) { nutriItem.Calories = Convert.ToDouble(row.ItemArray[i]); } else if (header.ItemArray[i].Equals("Fett, total (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Fat = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Fat = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Fettsäuren, gesättigt (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.FattyAcidsSaturated = new NutritionDataFormatValueGram(outValue); } else { nutriItem.FattyAcidsSaturated = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Fettsäuren, einfach ungesättigt (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.FattyAcidsSingleSaturated = new NutritionDataFormatValueGram(outValue); } else { nutriItem.FattyAcidsSingleSaturated = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Fettsäuren, mehrfach ungesättigt (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.FattyAcidsMultiSaturated = new NutritionDataFormatValueGram(outValue); } else { nutriItem.FattyAcidsMultiSaturated = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Cholesterin (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Cholesterol = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Cholesterol = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Kohlenhydrate, verfügbar (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Carbs = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Carbs = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Zucker (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Sugar = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Sugar = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Stärke (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Starch = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Starch = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Nahrungsfasern (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Fibres = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Fibres = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Protein (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Protein = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Protein = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Salz (NaCl) (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Salt = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Salt = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Alkohol (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Alcohol = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Alcohol = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Wasser (g)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Water = new NutritionDataFormatValueGram(outValue); } else { nutriItem.Water = new NutritionDataFormatValueGram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin A-Aktivität, RE (µg-RE)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminA_RE = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.VitaminA_RE = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin A-Aktivität, RAE (µg-RE)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminA_RAE = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.VitaminA_RAE = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("All-trans Retinol-Äquivalente (µg-RE)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Retinol = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.Retinol = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Betacarotin-Aktivität (µg-BCE)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.BetacarotinActivity = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.BetacarotinActivity = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Betacarotin (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Betacarotin = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.Betacarotin = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin B1 (Thiamin) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminB1 = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.VitaminB1 = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin B2 (Riboflavin) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminB2 = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.VitaminB2 = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin B6 (Pyridoxin) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminB6 = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.VitaminB6 = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin B12 (Cobalamin) (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminB12 = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.VitaminB12 = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Niacin (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Niacin = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Niacin = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Folat (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Folat = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.Folat = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Pantothensäure (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.PantothenicAcid = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.PantothenicAcid = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin C (Ascorbinsäure) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminC = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.VitaminC = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin D (Calciferol) (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminD = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.VitaminD = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Vitamin E-Aktivität (mg-ATE)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.VitaminE = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.VitaminE = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Kalium (K) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Potassium = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Potassium = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Natrium (Na) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Sodium = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Sodium = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Chlorid (Cl) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Chlorid = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Chlorid = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Calcium (Ca) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Calcium = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Calcium = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Magnesium (Mg) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Magnesium = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Magnesium = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Phosphor (P) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Phosphorus = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Phosphorus = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Eisen (Fe) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Iron = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Iron = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Jod (I) (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Iodine = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.Iodine = new NutritionDataFormatValueMicrogram(0.0); } } else if (header.ItemArray[i].Equals("Zink (Zn) (mg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Zinc = new NutritionDataFormatValueMilligram(outValue); } else { nutriItem.Zinc = new NutritionDataFormatValueMilligram(0.0); } } else if (header.ItemArray[i].Equals("Selen (Se) (µg)")) { if (Double.TryParse(row.ItemArray[i].ToString(), out double outValue)) { nutriItem.Selenium = new NutritionDataFormatValueMicrogram(outValue); } else { nutriItem.Selenium = new NutritionDataFormatValueMicrogram(0.0); } } } return(nutriItem); }
public NutritionItemDetailsPage(NutritionItem item) { InitializeComponent(); (this.BindingContext as BaseViewModel).OnNavigatingTo(item); }
public ExcelFileReader() { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); using (var stream = File.Open(_filePath, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { var result = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); IList <NutritionItem> itemList = new List <NutritionItem>(); var headerRow = result.Tables[0].Rows[1]; for (int i = 2; i < result.Tables[0].Rows.Count; i++) { if ((i % 20) == 0) { Console.Write("."); } NutritionItem nutritionItem = ConvertToNutritionItem.ConvertRow(headerRow, result.Tables[0].Rows[i]); itemList.Add(nutritionItem); } Console.WriteLine(' '); string itemsJson = JsonConvert.SerializeObject(itemList); //foreach (NutritionItem item in itemList) //{ // Console.WriteLine(item.ToString()); //} string categoriesJson = JsonConvert.SerializeObject(ConvertToNutritionItem.ItemCategories); foreach (NutritionItemCategorie item in ConvertToNutritionItem.ItemCategories) { Console.WriteLine($"ID: {item.ID} {item.Name} ITEMS: {item.ListOfNutritionItemIDs.Count}"); if (item.ListOfSubCategories.Count == 0) { foreach (var nutriID in item.ListOfNutritionItemIDs) { Console.WriteLine($" - ID: {nutriID}"); } } foreach (var sub_item in item.ListOfSubCategories) { Console.WriteLine($" ID: {sub_item.ID} {sub_item.Name}"); foreach (var nutriID in sub_item.ListOfNutritionItemIDs) { Console.WriteLine($" - ID: {nutriID}"); } } } var dbPath = @"D:\NutritionApp\src\Core\NutritionApp.Core\Database\db.txt"; // Create the file, or overwrite if the file exists. using (FileStream fs = File.Create(dbPath)) { //byte[] semi = new UTF8Encoding(true).GetBytes("{"); //fs.Write(semi, 0, semi.Length); byte[] info = new UTF8Encoding(true).GetBytes(itemsJson); // Add some information to the file. fs.Write(info, 0, info.Length); byte[] semi = new UTF8Encoding(true).GetBytes(";"); fs.Write(semi, 0, semi.Length); byte[] categroies_info = new UTF8Encoding(true).GetBytes(categoriesJson); // Add some information to the file. fs.Write(categroies_info, 0, categroies_info.Length); //semi = new UTF8Encoding(true).GetBytes("}"); //fs.Write(semi, 0, semi.Length); } } } }