(function () {
    'use strict';

    angular
        .module('app')
        .factory('Comando', Comando);

    Comando.$inject = [
        'ComandoPaineis',
        'ComandoDispositivos',
        'ComandoInstalador',
        'ComandoConfiguracaoColunas',
        'ComandoConfiguracaoEmpresa',
        'ComandoConfiguracaoVisualizacao',
        'ComandoConfiguracaoPlataforma',
        'ComandoConfiguracaoRodaPe',
        'ComandoConfiguracaoLayout',
        'ComandoServicoPainelFinal'
    ];

    function Comando(
        ComandoPaineis,
        ComandoDispositivos,
        ComandoInstalador,
        ComandoConfiguracaoColunas,
        ComandoConfiguracaoEmpresa,
        ComandoConfiguracaoVisualizacao,
        ComandoConfiguracaoPlataforma,
        ComandoConfiguracaoRodaPe,
        ComandoConfiguracaoLayout,
        ComandoServicoPainelFinal
    ) {

        function Instance(ComandoPaineis, ComandoDispositivos, ComandoInstalador, ComandoConfiguracaoColunas, ComandoConfiguracaoEmpresa, ComandoConfiguracaoVisualizacao,
            ComandoConfiguracaoPlataforma, ComandoConfiguracaoRodaPe, ComandoConfiguracaoLayout) {
            var functions = {};

            for (var i in ComandoPaineis) { functions[i] = ComandoPaineis[i]; }
            for (var i in ComandoDispositivos) { functions[i] = ComandoDispositivos[i]; }
            for (var i in ComandoInstalador) { functions[i] = ComandoInstalador[i]; }
            for (var i in ComandoConfiguracaoColunas) { functions[i] = ComandoConfiguracaoColunas[i]; }
            for (var i in ComandoConfiguracaoEmpresa) { functions[i] = ComandoConfiguracaoEmpresa[i]; }
            for (var i in ComandoConfiguracaoVisualizacao) { functions[i] = ComandoConfiguracaoVisualizacao[i]; }
            for (var i in ComandoConfiguracaoPlataforma) { functions[i] = ComandoConfiguracaoPlataforma[i]; }
            for (var i in ComandoConfiguracaoRodaPe) { functions[i] = ComandoConfiguracaoRodaPe[i]; }
            for (var i in ComandoConfiguracaoLayout) { functions[i] = ComandoConfiguracaoLayout[i]; }
            for (var i in ComandoServicoPainelFinal) { functions[i] = ComandoServicoPainelFinal[i]; }

            return functions;
        }

        return new Instance(ComandoPaineis,
            ComandoDispositivos,
            ComandoInstalador,
            ComandoConfiguracaoColunas,
            ComandoConfiguracaoEmpresa,
            ComandoConfiguracaoVisualizacao,
            ComandoConfiguracaoPlataforma,
            ComandoConfiguracaoRodaPe,
            ComandoConfiguracaoLayout,
            ComandoServicoPainelFinal);
    }
})();