public StateManagement()
 {
     StateManagementSystemsCatalog = new StateManagementSystemsCatalog();
     SystemBuildingDirector        = new StateManagementSystemBuildingDirector();
 }
 public virtual IDataRepository <TData> GetRepository <TData>()
     where TData : IData
 {
     return(StateManagementSystemsCatalog.Retrieve <TData>().Repository);
 }
 public virtual void Register <TData>(IStateManagementSystemBuilder <TData> builder)
     where TData : IData
 {
     SystemBuildingDirector.Build(builder);
     StateManagementSystemsCatalog.Register(builder.ExtractResult());
 }