public void Deserialize_CustomFood_FullDetails() { const string serialized = "CustomFoods:" + "\r\n" + "(" + "\r\n" + " ItemID:verybigwater;" + "\r\n" + " DisplayName:\"Very Big Water\";" + "\r\n" + " Tooltip:\"A very Big Water\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:filteredwater;" + "\r\n" + " Required:5;" + "\r\n" + " );" + "\r\n" + " Path:Fabricator;" + "\r\n" + " FoodValue:0;" + "\r\n" + " WaterValue:100;" + "\r\n" + ");" + "\r\n"; var food = new CustomFood(); food.FromString(serialized); //Assert.AreEqual(TechType.Aerogel.ToString(), food.ItemID); Assert.AreEqual(0, food.FoodValue); Assert.AreEqual(100, food.WaterValue); }
public async Task <CommandResult> Handle(UpdateFoodCommand request, CancellationToken cancellationToken) { CustomFood customFood = await _foodRepository.GetCustomByIdAsync(request.FoodId, _currentProfileId); if (customFood == null) { return(FailureDueToCustomFoodNotFound()); } CustomFoodTable customFoodTable = await _foodTableRepository.GetCustomByIdAsync(request.FoodTableId, _currentProfileId); if (customFoodTable == null) { return(FailureDueToCustomFoodTableNotFound()); } customFood.Update( request.Name, request.Description, request.FoodTableId, _mapper.Map <MacronutrientTable>(request.Macronutrients), _mapper.Map <MicronutrientTable>(request.Micronutrients), new FoodUnit(request.UnitType, request.DefaultGramsQuantityMultiplier) ); await _foodRepository.UpdateAsync(customFood); return(await CommitAndPublishDefaultAsync()); }
public async Task <IActionResult> PutCustomFood(string id, CustomFood customFood) { if (id != customFood.Id) { return(BadRequest()); } _context.Entry(customFood).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CustomFoodExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <CommandResult> Handle(RemoveFoodCommand request, CancellationToken cancellationToken) { CustomFood food = await _foodRepository.GetCustomByIdAsync(request.FoodId, _currentProfileId); if (food == null) { return(FailureDueToCustomFoodNotFound()); } await _foodRepository.RemoveAsync(food); return(await CommitAndPublishDefaultAsync()); }
public async Task <IActionResult> OnPostAddCustomFoodAsync() { if (!ModelState.IsValid) { return(Page()); } CustomFood.Id = CustomFood.GenerateId(CustomFood.Name); _context.CustomFoods.Add(CustomFood); await _context.SaveChangesAsync(); return(RedirectToPage("/Dashboard")); }
public async Task <ActionResult <CustomFood> > PostCustomFood([FromBody] CustomFood customFood) { if (CustomFoodExists(customFood.Id) == false) { _context.CustomFoods.Add(customFood); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCustomFood", new { id = customFood.Id }, customFood)); } else { return(null); } }
public async Task <ActionResult <IEnumerable <CustomFood> > > SearchFood() { string term = HttpContext.Request.Query["term"].ToString(); string offset_string = HttpContext.Request.Query["offset"].ToString(); string max_string = HttpContext.Request.Query["max"].ToString(); int max = 10; int offset = 0; if (offset_string != "") { Int32.TryParse(HttpContext.Request.Query["offset"].ToString(), out offset); } if (max_string != "") { Int32.TryParse(HttpContext.Request.Query["max"].ToString(), out max); } //food names that start with the search term should appear first List <CustomFood> result = await _context.CustomFoods.Where(p => p.Name.ToLower().StartsWith(term.ToLower())).ToListAsync(); //next comes words that start with the search term, but aren't at the start of the food name result.AddRange(await _context.CustomFoods.Where(p => p.Name.ToLower().Contains(' ' + term.ToLower())).ToListAsync()); //then everything else result.AddRange(await _context.CustomFoods.Where(p => p.Name.ToLower().Contains(term.ToLower())).ToListAsync()); result.AddRange(await _context.CustomFoods.Where(p => p.Name.ToLower().Replace("-", "").Replace(" ", "").Contains(term.ToLower().Replace(" ", ""))).ToListAsync()); //remove duplicates result = result.Distinct().ToList(); int max_count = result.Count(); List <CustomFood> customFoods = result.Skip(offset).Take(max).ToList(); if (customFoods.Count < max_count) { CustomFood more = new CustomFood(); more.Id = "0"; more.Name = "(Showing " + customFoods.Count.ToString() + " of " + max_count.ToString() + ") More..."; customFoods.Add(more); } return(customFoods); }
private float getCustomFoodValue(CustomFood f, int i) { switch (i) { case 0: return(f.Water); case 1: return(f.Enegry); case 2: return(f.EnegryNIP); case 3: return(f.Protein); case 4: return(f.Fat); case 5: return(f.Carbohydrates); case 6: return(f.DietaryFibre); case 7: return(f.Sugars); case 8: return(f.Starch); case 9: return(f.SFA); case 10: return(f.MUFA); case 11: return(f.PUFA); case 12: return(f.AlphaLinolenicAcid); case 13: return(f.LinoleicAcid); case 14: return(f.Cholesterol); case 15: return(f.Sodium); case 16: return(f.Iodine); case 17: return(f.Potassium); case 18: return(f.Phosphorus); case 19: return(f.Calcium); case 20: return(f.Iron); case 21: return(f.Zinc); case 22: return(f.Selenium); case 23: return(f.VitaminA); case 24: return(f.BetaCarotene); case 25: return(f.Thiamin); case 26: return(f.Riboflavin); case 27: return(f.Niacin); case 28: return(f.VitaminB6); case 29: return(f.VitaminB12); case 30: return(f.DietaryFolate); case 31: return(f.VitaminC); case 32: return(f.VitaminD); case 33: return(f.VitaminE); default: return(0); } }
public CustomFoodPrefab(CustomFood customFood) : base(customFood.ItemID, $"{customFood.ItemID}Prefab", customFood.TechType) { FoodEntry = customFood; }
public async Task <IActionResult> GetCustomByIdAsync(Guid id) { CustomFood customFood = await _foodRepository.GetCustomByIdAsync(id, _currentProfileId); return(CreateResponse(customFood)); }