Example #1
0
        public bool UpdateUserLevel()
        {
            var calculator = new IntegralCalculator(UserId);
            var integral   = calculator.Integral;


            var um           = new UserLevelManager(UserId);
            var level        = new UserLevelCalculator(integral).Level;
            var ul           = um.UserLevel;
            var currentLevel = um.Level;


            if (currentLevel == null || !currentLevel.Equals(level))
            {
                if (ul == null)
                {
                    ul = new UserLevel();
                }
                ul.Level = level;
                if (ul.UserLevelRecord == null)
                {
                    ul.UserLevelRecord = new List <UserLevelRecord>();
                }
                ul.UserLevelRecord.Add(new UserLevelRecord
                {
                    CreationDate = DateTime.Now,
                    CurrentPoint = integral,
                    IsDelete     = false,
                    Level        = level,
                    ManagerId    = CurrentUser.ProviderUserKey.ToString(),
                    ManagerName  = CurrentUser.UserName
                });

                return(MongoHelper.Instance.Save(ul));
            }


            return(false);
        }
Example #2
0
        public UserLevelManager(string userId)
        {
            var condition = Query.EQ("UserId", userId);
            var userLevel = MongoHelper.Instance.FindOne <UserLevel>(condition);

            if (userLevel != null)
            {
                this.UserLevel = userLevel;
                this.Level     = userLevel.Level;
            }
            else
            {
                var currentPoint = new IntegralCalculator(userId).Integral;
                var level        = new UserLevelCalculator(currentPoint).Level;

                userLevel = new UserLevel
                {
                    CreationDate    = DateTime.Now,
                    Level           = level,
                    UserId          = userId,
                    UserLevelRecord = new List <UserLevelRecord>()
                    {
                        new UserLevelRecord {
                            CreationDate = DateTime.Now,
                            CurrentPoint = currentPoint,
                            Level        = level,
                            UserId       = userId
                        }
                    }
                };
                MongoHelper.Instance.Save(userLevel);

                this.UserLevel = userLevel;
                this.Level     = userLevel.Level;
            }
        }