// Before calling this method you need to check if badge hasn't reached max level already public void CheckDropsBadge(BadgeDrops badge) { var requirements = repository.GetBadgeRequirements(badge.Id, badge.BadgeLevel); if (requirements == null) { return; } if (requirements.Requirement < badge.ReachedHeight) { repository.UpdateBadgeLevel(badge.Id, badge.BadgeLevel + 1, BadgeTypeEnum.BadgeDrop); repository.ResetBadgeReachedHeigh(badge.Id); } }