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); }
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; } }
public UserLevelCalculator(string userId) { var calc = new IntegralCalculator(userId); this.Level = GetLevel(calc.Integral); }