public IBaseOutput GetOutput(OutputIdentity identity)
 {
     var id = GetIdentity(identity).Id;
     return Outputs
         .Where(i => i.Id == id)
         .SingleOrDefault();
 }
        public static IIdentifiable GetIdentity(OutputIdentity key)
        {
            switch (key)
            {
                case OutputIdentity.X:
                    return new Identity(NsOutput + key, "X", "X");
                case OutputIdentity.Y:
                    return new Identity(NsOutput + key, "Y", "Y");
                case OutputIdentity.Z:
                    return new Identity(NsOutput + key, "Z", "Z");
                default:
                    break;
            }

            throw new NotImplementedException(key.ToString());
        }