public override UserMedal CheckIfFullfiledRequirement(SpontaneousUserModel statistic, UserActivity activity) { if (statistic.UserMedalsList != null && statistic.UserMedalsList.Count > 0) { if (IfAlreadyHave(statistic)) return null; } //int avtivityCount = statistic.GetActivityCount(activity.GetType().Name); //if (avtivityCount >= RequirementsList[0].Count) //{ // UserMedal medal = new WelcomeUserMedal(); // log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Win WelcomeUser Medal. avtivityCount={0}", avtivityCount); // return medal; //} string activityName = activity.GetType().Name; int activityCount = 0; if (activity is MedalViewActivity) { activityCount = statistic.GetActivityCount(activityName, ((MedalViewActivity)activity).MedalType); } else { activityCount = statistic.GetActivityCount(activityName); } //Check if current activity is in requirement list if (RequirementsList.FirstOrDefault(r => r.Activity.GetType().Name == activityName) != null) { if (activityCount >= RequirementsList.FirstOrDefault(r => r.Activity.GetType().Name == activityName).Count) { //Current activity is meets requirement //Check if meets other requirements necessary for the medal foreach (var requirement in RequirementsList) { activityName = requirement.Activity.GetType().Name; //avtivityCount = statistic.GetActivityCount(activityName); if (requirement.Activity is MedalViewActivity) { activityCount = statistic.GetActivityCount(activityName, "WelcomeUserMedal"); } else { activityCount = statistic.GetActivityCount(activityName); } if (!(activityCount >= RequirementsList.FirstOrDefault(r => r.Activity.GetType().Name == activityName).Count)) { log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Still not win WelcomeUser Medal. avtivityCount={0}", activityCount); return null; } } UserMedal medal = new WelcomeUserMedal(); log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Win WelcomeUser Medal. avtivityCount={0}", activityCount); return medal; } } else { log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Still not win WelcomeUser Medal. avtivityCount={0}", activityCount); } return null; }
public void ToUserMedalModelTest_ShouldConvertUserMedalObjectToViewModel_ifCouponExistShouldConvertCouponTypeToCouponTypeModel() { //Arrange DateTime time = DateTime.UtcNow; CouponType coupon = new CouponType() { Id = new ObjectId("51aae3bf3720e811c09fb107"), Description = "test coupon nomber 1", RestaurantsIDs = new List<string>() { "51b02f863720e81d6cf62a3b", "51cbee273720e80ea00922ae" }, ValidFrom = new DateTime(0), ValidUntil = time }; UserMedal medal1 = new WelcomeUserMedal(); medal1.Coupon = coupon; UserMedal medal2 = new RestaurantAdviserMedal(); //Act UserMedalModel medalModel1 = medal1.ToUserMedalModel(); UserMedalModel medalModel2 = medal2.ToUserMedalModel(); //Assert Assert.AreEqual(medalModel1.MedalName, "ברוכים הבאים"); Assert.AreEqual(medalModel2.MedalName, "מבקר מסעדות"); Assert.AreEqual(medalModel1.CreatedAt, medal1.CreatedAt); Assert.AreEqual(medalModel1.Coupon.Id, medal1.Coupon.Id.ToString()); Assert.IsNull(medalModel2.Coupon); }
public override UserMedal CheckIfFullfiledRequirement(SpontaneousUserModel statistic, UserActivity activity) { if (statistic.UserMedalsList != null && statistic.UserMedalsList.Count > 0) { //1 Still not acquired check foreach (UserMedal medal in statistic.UserMedalsList) { if (medal is WelcomeUserMedal) return null; } } //2 10 views int avtivityCount = statistic.GetActivityCount(activity.GetType().Name); if (avtivityCount >= 1) { // need to check if medal created with CreatedAt propertie UserMedal medal = new WelcomeUserMedal(); log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Win WelcomeUser Medal. avtivityCount={0}", avtivityCount); return medal; } else { log.InfoFormat("[WelcomeUserChecker: CheckIfFullfiledRequirement] Still not win WelcomeUser Medal. avtivityCount={0}", avtivityCount); } return null; }
public void GetMedalsTest_Should_ReturnListOfUserMedal_ifMedalWithNullCouponMustCreatNewCoupon() { //Arrange SpontaneousUserModel userModel = new SpontaneousUserModel() { UserActivityList = new List<UserActivity>(), UserMedalsList = new List<UserMedal>() }; DateTime time = DateTime.UtcNow; CouponType coupon = new CouponType() { Id = new ObjectId("51aae3bf3720e811c09fb107"), Description = "test coupon nomber 1", RestaurantsIDs = new List<string>() { "51b02f863720e81d6cf62a3b", "51cbee273720e80ea00922ae" }, ValidFrom = new DateTime(0), ValidUntil = time }; UserMedal medal1 = new WelcomeUserMedal(); UserMedal medal2 = new RestaurantAdviserMedal(); UserMedal medal3 = new RestaurantAdviserMedal(); medal3.Coupon = coupon; UserMedal medal4 = new FlowCompleteMedal(); UserMedal medal5 = new AddRestaurantMedal(); userModel.UserMedalsList.Add(medal1); userModel.UserMedalsList.Add(medal2); userModel.UserMedalsList.Add(medal3); userModel.UserMedalsList.Add(medal4); userModel.UserMedalsList.Add(medal5); //Act List<UserMedal> list = serviceLayer.GetMedals(); //Assert Assert.IsFalse(list.Exists(m => m.Coupon == null)); }