public void AddModule(TECIOModule module)
 {
     if (CanAddModule(module))
     {
         IOModules.Add(module);
     }
     else
     {
         throw new InvalidOperationException("Controller can't accept IOModule.");
     }
 }
 public bool CanRemoveModule(TECIOModule module)
 {
     if (module == null)
     {
         return(false);
     }
     else
     {
         bool hasModule = this.IOModules.Contains(module);
         bool canSpare  = true;
         foreach (TECIO io in module.IO)
         {
             if (!base.AvailableIO.Contains(io))
             {
                 canSpare = false;
                 break;
             }
         }
         return(hasModule && canSpare);
     }
 }
 public bool CanAddModule(TECIOModule module)
 {
     return(this.Type.IOModules.Count(mod => (mod == module)) >
            this.IOModules.Count(mod => (mod == module)));
 }