public void OnBeforeUpdateTest() { var target = FoodGroupEN.GetService(""); var p = new FoodGroup_GetUnsavedFoodGroupSP { FoodServingTimeTypeID = (int)EntityEnums.FoodServingTimeTypeEnum.Other, UserID = TestEnums.User.constPatientUserID }; var obj = target.GetUnsavedFoodGroup(p); // clearing previous results var dp = new DailyActivity_GetByTypeAndExternalEntityAndUserSP() { UserID = TestEnums.User.constPatientUserID, DailyActivityTypeID = (int)EntityEnums.DailyActivityTypeEnum.Eating, ExternalEntityID = obj.FoodGroupID }; var list = DailyActivityEN.GetService().GetByTypeAndExternalEntityAndUser(dp); if (list.Count > 0) { DailyActivityEN.GetService().Delete(list[0], null); } // test update obj.RecordDateTimeUserLocal = DateTime.Now; //var foodgroupitem1 = new FoodGroupItem //{ // FoodGroupID = obj.FoodGroupID, // Calorie = 0, // Carb = 0, // Protein = 0, // Fat = 0, // FoodID = new Guid("176B0637-65E9-409E-829C-0001D06B5626"), // FoodServingTypeID = 0, // ServingAmount = 100, // ServingGrams = 50 //}; //FoodGroupItemEN.GetService().Insert(foodgroupitem1, null); target.Update(obj, null); // check if daily activity is created successfully list = DailyActivityEN.GetService().GetByTypeAndExternalEntityAndUser(dp); Assert.IsTrue(obj.IsGroupSaved == true, "group should be saved after update"); Assert.IsTrue(list.Count == 1, "DailyActivity has not been created after update"); }
/// <summary> /// Updates DailyActivitySum by FoodGroup information /// </summary> /// <param name="f">FoodGroup information</param> public static void UpdateDailyActivitySums(FoodGroup f) { if (f.IsGroupSaved) { var foodgroupSumService = FoodGroupSumEN.GetService(); var filter = new FilterExpression(vFoodGroupSum.ColumnNames.FoodGroupID, f.FoodGroupID); var sumList = foodgroupSumService.GetByFilterV(new GetByFilterParameters(filter)); if (sumList.Count > 0) { var dailyActivityService = DailyActivityEN.GetService(); var list = dailyActivityService.GetByTypeAndExternalEntityAndUser(new DailyActivity_GetByTypeAndExternalEntityAndUserSP { UserID = f.UserID, ExternalEntityID = f.FoodGroupID, DailyActivityTypeID = (int)EntityEnums.DailyActivityTypeEnum.Eating }); var activity = list[0]; if (sumList[0].CalorieSum.HasValue) { activity.Calorie = sumList[0].CalorieSum.Value; } if (sumList[0].CarbSum.HasValue) { activity.Carb = sumList[0].CarbSum.Value; } if (sumList[0].ProteinSum.HasValue) { activity.Protein = sumList[0].ProteinSum.Value; } if (sumList[0].FatSum.HasValue) { activity.Fat = sumList[0].FatSum.Value; } dailyActivityService.Update(activity, null); } } }
protected override bool onBeforeUpdate(object entitySet, UpdateParameters parameters) { var dailyActivityService = DailyActivityEN.GetService(); var f = (FoodGroup)entitySet; var list = dailyActivityService.GetByTypeAndExternalEntityAndUser(new DailyActivity_GetByTypeAndExternalEntityAndUserSP() { UserID = f.UserID, ExternalEntityID = f.FoodGroupID, DailyActivityTypeID = (int)EntityEnums.DailyActivityTypeEnum.Eating }); f.IsGroupSaved = true; if (list.Count == 0) // if we didn't have a saved daily activity just add it, computation will be done later { var obj = new DailyActivity { DailyActivityID = Guid.NewGuid(), DurationSeconds = 15 * 60, ExternalEntityID = f.FoodGroupID, DailyActivityTypeID = (int)EntityEnums.DailyActivityTypeEnum.Eating, IsManualEntry = true, RecordDateTimeUserLocal = f.RecordDateTimeUserLocal, UserID = f.UserID }; parameters.DetailEntityObjects.Add(new DetailObjectInfo() { EntityName = vDailyActivity.EntityName, EntitySet = obj, FnName = RuleFunctionSEnum.Insert }); } return(true); //do update }
public void OnAfterUpdateTest() { var target = FoodGroupEN.GetService(""); var p = new FoodGroup_GetUnsavedFoodGroupSP { FoodServingTimeTypeID = (int)EntityEnums.FoodServingTimeTypeEnum.Other, UserID = TestEnums.User.constPatientUserID }; var obj = target.GetUnsavedFoodGroup(p); var foodgroupitem1 = new FoodGroupItem { FoodGroupID = obj.FoodGroupID, Calorie = 100, Carb = 200, Protein = 300, Fat = 400, FoodID = new Guid("176B0637-65E9-409E-829C-0001D06B5626"), FoodServingTypeID = 0, ServingAmount = 100, ServingGrams = 50 }; var foodgroupitem2 = new FoodGroupItem { FoodGroupID = obj.FoodGroupID, Calorie = 100, Carb = 200, Protein = 300, Fat = 400, FoodID = new Guid("176B0637-65E9-409E-829C-0001D06B5626"), FoodServingTypeID = 0, ServingAmount = 100, ServingGrams = 50 }; FoodGroupItemEN.GetService().Insert(foodgroupitem1, null); FoodGroupItemEN.GetService().Insert(foodgroupitem2, null); // updating foodgroup to save information in the database obj.RecordDateTimeUserLocal = DateTime.Now; target.Update(obj, null); // Checking sum values be updated in Daily Activity entity var dp = new DailyActivity_GetByTypeAndExternalEntityAndUserSP() { UserID = TestEnums.User.constPatientUserID, DailyActivityTypeID = (int)EntityEnums.DailyActivityTypeEnum.Eating, ExternalEntityID = obj.FoodGroupID }; var list = DailyActivityEN.GetService().GetByTypeAndExternalEntityAndUser(dp); Assert.IsTrue(list.Count > 0, "Daily Activity should exists."); var dailyActivity = list[0]; Assert.AreEqual(dailyActivity.Carb, foodgroupitem1.Carb + foodgroupitem2.Carb); Assert.AreEqual(dailyActivity.Protein, foodgroupitem1.Protein + foodgroupitem2.Protein); Assert.AreEqual(dailyActivity.Fat, foodgroupitem1.Fat + foodgroupitem2.Fat); Assert.AreEqual(dailyActivity.Calorie, foodgroupitem1.Calorie + foodgroupitem2.Calorie); // Note: This part is another test case, but I put it here to avoid writing the whole test again // Check updates of a FoodGroupItem to propagate to daily activity foodgroupitem1.Calorie = foodgroupitem1.Calorie * 2; foodgroupitem1.Fat = foodgroupitem1.Fat * 2; foodgroupitem1.Protein = foodgroupitem1.Protein * 2; foodgroupitem1.Carb = foodgroupitem1.Carb * 2; FoodGroupItemEN.GetService().Update(foodgroupitem1, null); list = DailyActivityEN.GetService().GetByTypeAndExternalEntityAndUser(dp); Assert.IsTrue(list.Count > 0, "Daily Activity should exists."); dailyActivity = list[0]; Assert.AreEqual(dailyActivity.Carb, foodgroupitem1.Carb + foodgroupitem2.Carb); Assert.AreEqual(dailyActivity.Protein, foodgroupitem1.Protein + foodgroupitem2.Protein); Assert.AreEqual(dailyActivity.Fat, foodgroupitem1.Fat + foodgroupitem2.Fat); Assert.AreEqual(dailyActivity.Calorie, foodgroupitem1.Calorie + foodgroupitem2.Calorie); }