示例#1
0
        //Please write your properties and functions here. This part will not be replaced.


        /// <summary>
        /// Gets the unsaved food group.
        /// </summary>
        /// <param name="p">The paramters</param>
        /// <returns></returns>
        public FoodGroup GetUnsavedFoodGroup(FoodGroup_GetUnsavedFoodGroupSP p)
        {
            var filter = new FilterExpression();

            filter.AddFilter(vFoodGroup.ColumnNames.UserID, p.UserID);
            filter.AddFilter(vFoodGroup.ColumnNames.IsGroupSaved, false);
            filter.AddFilter(vFoodGroup.ColumnNames.FoodServingTimeTypeID, p.FoodServingTimeTypeID);
            var list = GetByFilterT(new GetByFilterParameters(filter));

            if (list.Count > 0)
            {
                return(list[0]);
            }
            else
            {
                var g = new FoodGroup
                {
                    FoodServingTimeTypeID = p.FoodServingTimeTypeID,
                    IsGroupSaved          = false,
                    UserID = p.UserID,
                    RecordDateTimeUserLocal = DateTime.Now
                };
                Insert(g);
                return(g);
            }
        }
        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");
        }
        public void GetUnsavedFoodGroupTest()
        {
            var target = FoodGroupEN.GetService("");
            var p      = new FoodGroup_GetUnsavedFoodGroupSP
            {
                FoodServingTimeTypeID = (int)EntityEnums.FoodServingTimeTypeEnum.Other,
                UserID = TestEnums.User.constPatientUserID
            };

            var first   = target.GetUnsavedFoodGroup(p);
            var firstId = first.FoodGroupID;

            target.Delete(first, null);

            var second = target.GetUnsavedFoodGroup(p);

            Assert.IsTrue(firstId != second.FoodGroupID);
        }
        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);
        }