/// <summary> /// Creates food with its recipe /// </summary> /// <param name="request">request to create food and ingredents</param> public void Create(CreateFoodRequest request) { //Map request to entities var foodEntity = request.Foods.Select(x => new FoodEntity { ID = x.ID, Name = x.Name, Price = x.Price }).ToList(); var foodRecipeEntities = request.Ingredents.Select(x => new FoodRecipeEntity { FoodID = x.FoodID, ProductID = x.ProductID, ProductAmount = x.ProductAmount }).ToList(); //Create new db transaction using (TransactionScope scope = CreateTransactionScope()) { //Add food on db _foodRepository.Add(foodEntity); //Add food recipe on db _foodRecipeRepository.Add(foodRecipeEntities); //Commit transaction scope.Complete(); } }
public double calculateAmoutFood(Lactation currentLactation) { int windowSize = 7; double sumYield = 0; double avgYield = 0; double amoutFood = 0; List <Yield> yield = currentLactation.yields.ToList(); for (int i = yield.Count - windowSize; i < yield.Count; i++) { sumYield += yield[i].totalYield; } avgYield = sumYield / windowSize; if (avgYield <= 5) { //1kg de concentrado para 3kg de leite amoutFood = avgYield / 3; } else { //1kg de concentrado para 2,5kg de leite produzido -> produzem acima de 5kg amoutFood = avgYield / 2.5; } //Salva a quantidade na base de dados foodRepo.Add(new Food { date = DateTime.Now, idCow = currentLactation.idCow, quantity = amoutFood }); return(amoutFood); }
public void AddFoodToDbSet() { var factoryMock = new Mock <IDbFactory>(); var contextMock = new Mock <CustomerContext>(); var dbSetFoodMock = new Mock <DbSet <Food> >(); dbSetFoodMock.Setup(x => x.Add(It.IsAny <Food>())).Returns((Food f) => f); contextMock.Setup(x => x.Set <Food>()).Returns(dbSetFoodMock.Object); factoryMock.Setup(x => x.Init()).Returns(contextMock.Object); var expected = new Food { Id = 42, Fats = 13 }; var repository = new FoodRepository(factoryMock.Object); repository.Add(expected); contextMock.Verify(x => x.Set <Food>()); dbSetFoodMock.Verify(x => x.Add(It.Is <Food>(y => y == expected))); }