Example #1
0
        internal void SaveUserActivity(UserActivity userActivity)
        {
            var userProfile = GetUserProfile();
            var userData = userProfile.GetUserData();
            string userActivityType = userActivity.GetType().Name;

            if (userActivity == null)
            {
                log.WarnFormat("[SaveUserActivity] User={0} tried to save user activity, but received NULL parameter.", userProfile.UserName);
                return;
            };

            if (userData.UserActivityList == null)
            {
                userData.UserActivityList = new List<UserActivity>();
            }

            userActivity.Date = DateTime.UtcNow;
            userData.TotalPoints += userActivity.Points;

            userData.UserActivityList.Add(userActivity);

            //Check if reached Medal
            MedalRequirementsChecker medalChecker = new MedalRequirementsChecker();
            List<UserMedal> medalList = medalChecker.ObtainMedalBecauseOfActivity(userData, userActivity);
            if(medalList.Count > 0)
            {
                if (userData.UserMedalsList == null) userData.UserMedalsList = new List<UserMedal>();
                foreach (var medal in medalList)
                {
                    userData.UserMedalsList.Add(medal);
                }

                userData.MedalNotificationFlag = true;
            }

            userProfile.SetUserData(userData);
            userProfile.Save();
            log.InfoFormat("[SaveUserActivity] user={0}, userActivity={1}.", userProfile.UserName, userActivity.ToString());
        }
Example #2
0
        internal void SaveUserActivity(UserActivity userActivity, List<CouponType> allCoupons)
        {
            if (userActivity == null)
            {
                log.Warn("[SaveUserActivity] tried to save user activity, but received NULL parameter.");
                return;
            };

            try
            {
                var userProfile = GetUserProfile();
                var userData = userProfile.GetUserData();
                string userActivityType = userActivity.GetType().Name;

                if (userData.UserActivityList == null)
                {
                    userData.UserActivityList = new List<UserActivity>();
                }

                userActivity.Date = DateTime.UtcNow;
                userData.TotalPoints += userActivity.Points;

                userData.UserActivityList.Add(userActivity);

                //Check if reached Medal
                MedalRequirementsChecker medalChecker = medalChecker = factoryMedalChecker(); ;

                if(medalChecker == null)
                    return;

                log.InfoFormat("[SaveUserActivity] Spontaneous : user={0}, userActivity={1}.", userProfile.UserName, userActivity.ToString());
                List<UserMedal> medalList = medalChecker.ObtainMedalBecauseOfActivity(userData, userActivity);

                if (medalList.Count > 0)
                {
                    if (userData.UserMedalsList == null) userData.UserMedalsList = new List<UserMedal>();
                    foreach (var medal in medalList)
                    {
                        CouponType tempCoupon = GetCoupon(userData, allCoupons, userActivity);
                        if (tempCoupon != null) // get coupon for new medal
                        {
                            medal.Coupon = tempCoupon;
                        }
                        else // if already have all coupons get last one
                        {
                            if (allCoupons != null && allCoupons.Count > 0)
                            {
                                medal.Coupon = allCoupons.LastOrDefault();
                            }
                        }

                        userData.UserMedalsList.Add(medal);
                    }
                    userData.MedalNotificationFlag = true;
                }

                userProfile.SetUserData(userData);
                userProfile.Save();
            }
            catch (Exception ex)
            {
                log.ErrorFormat("[SaveUserActivity] error: Exception={0}.", ex.ToString());
            }
        }