private static IEnumerable <EntityDesignerCommand> GetCommands(IEntityDesignerLayer layer = null) { var commandsToReturn = new List <EntityDesignerCommand>(); var commandsForLayer = EscherExtensionPointManager.LoadCommandExtensions(layer == null, layer != null); foreach (var lazyFactory in commandsForLayer) { var factory = lazyFactory.Value; if (factory != null) { commandsToReturn.AddRange(factory.Commands); } } return(commandsToReturn); }