Being passionate about anything can have its drawbacks; in my zeal to give inside-out development a shot, I completely disregarded a couple principles I hold dear. SRP? Out the window. Test-first code? Left by the side of the road. I do have a set of what I'd call acceptance tests that are 85% complete given the current understanding of the system which means it's time to start refactoring and writing more tests :)
The first thing that needs to happen is to move create / find project functionality into its own class. I'm actually going to build this one bottom-up for now using the same parameters that are in EDMSystem currently.
There is a small problem. I'm passing in null for IUserService in the Project constructor. I'm not really too thrilled with that right now but these things tend to come out in the wash. The EDMSystem class looks like this:
null
IUserService
Project
Of course not all the acceptance tests are passing (remember the IUserService is null), but that's OK for now. One step at a time :) I can see EDMSystem quickly going away .. where's my DI container when I want one ...