title: Implementing a simple achievement system for dotnet mvc
body: <p>I'm working on creating a banking application for a school project that uses ASP.net MVC 4. As part of the application we have a set of achievements for the user. When the User completes an achievement, say "Create a Savings Account" they should be rewarded by unlocking the achievement and sending a notification. Here's the Achievement Class:</p>
  
  <pre><code>    public class Achievement
      {
          public string UserID { get; set; }
  
          public AchievementType AchType { get; set; }
  
          public bool Completed { get; set; }
  
          public string Description { get; set; }
  
          public int CountToUnlock { get; set; }
      }
  
      public enum AchievementType
      {
          CREATE_SAVINGS_ACCOUNT, CREATE_GOAL, COMPLETE_GOAL, ACCOUNT_5K,
          ACCOUNT_10K, UPDATE_GOAL, ADD_TRANSACTION, SAVE_1K_TOTAL
      };
  </code></pre>
  
  <p>The part I'm struggling with is how to make sure that every user has the same set of achievements and where to trigger those achievements. Whether they should be in an AchievementController or someplace else.</p>