title: Adding methods to POCO classes
body: <p>I have the following setup: MVC > Services > Repositories. Now I want to allow users to be able to add a Note to a Document. Only Users associated with the Document (either as owners or reviewers) can add Notes so in my NoteService I do the following to ensure the User has permission on the selected Document:</p>
  
  <pre><code>public Note GetNewNote(int documentID)
      {
          if (!userHasAccess(Thread.CurrentPrincipal.Identity.Name))
              throw new BusinessLogicException();
  
          // Other stuff here...
      }
  </code></pre>
  
  <p>My question is, where should I define the userHasAccess method? It makes no sense in the NoteService as it is checking on a Document. I could define it in the DocumentService but will then NoteService will need access to this which seems to be introducing more coupling.</p>
  
  <p>To me it makes more sense to define it on the Document POCO itself and then call document.userHasAccess(...). Would this be good practice or should a domain POCO be limited to simple properties? I am concerned that this is really part of the validation and that by placing the method in the POCO I am seperating the validation between Service and POCO.</p>
  
  <p>What I am trying to ensure is that my application is easy to maintain and test. Any suggestions on how I should tackle this would be most appreciated!</p>