public EntradaSimbolo GetSimbolo(int scenarioId, string codigo, EEntryBySymbolType entryBySymbolType)
        {
            EntradaSimbolo entradaSimbolo = new EntradaSimbolo();

            switch (entryBySymbolType)
            {
            case EEntryBySymbolType.UF_ProductCost: SetPreferences(2, 3, new string[] { "CusMP" }, new string[] { "Unidade", "Produto", "Período", "Custo" }); break;

            case EEntryBySymbolType.UA_InitialVolume: SetPreferences(2, 2, new string[] { "VolIni" }, new string[] { "Unidade", "Produto", "Volume Inicial" }); break;

            case EEntryBySymbolType.UA_AgrupedVolume: SetPreferences(2, 2, new string[] { "VolMinT", "VolMaxT" }, new string[] { "Unidade", "Período", "Volume Mínimo", "Volume Máximo" }); break;

            case EEntryBySymbolType.UA_VariableCost: SetPreferences(2, 3, new string[] { "valor", "cFin", "cusArm", "cusSeg" }, new string[] { "Unidade", "Produto", "Período", "Valor do produto<br/>em Estoque", "Custo Financeiro", "Custo de<br/>Armazenagem", "Custo do Seguro" }); break;

            case EEntryBySymbolType.UA_FixedCost: SetPreferences(2, 2, new string[] { "CfxoUA" }, new string[] { "Unidade", "Período", "Custo Fixo" }); break;

            case EEntryBySymbolType.UA_Handling: SetPreferences(2, 3, new string[] { "hIn", "hOut" }, new string[] { "Unidade", "Produto", "Período", "Custo de Handling<br/>no Recebimento", "Custo de Handling<br/>na Expedição" }); break;

            case EEntryBySymbolType.UA_Retention: SetPreferences(2, 3, new string[] { "pde" }, new string[] { "Unidade", "Produto", "Período", "Retenção" }); break;

            case EEntryBySymbolType.UA_EntryLimit: SetPreferences(0, 0, new string[] { }, new string[] { }); break;

            case EEntryBySymbolType.UA_ExitLimit: SetPreferences(0, 0, new string[] { }, new string[] { }); break;

            case EEntryBySymbolType.MC_DemandaProduto: SetPreferences(2, 3, new string[] { "DemMin", "DemMax" }, new string[] { "Unidade", "Produto", "Período", "Demanda Mínima", "Demanda Máxima" }); break;

            default: SetPreferences(0, 0, new string[] { "" }, new string[] { "" }); break;
            }

            entradaSimbolo.DimensionStart = this.DimensionStart;
            entradaSimbolo.DimensionSize  = this.DimensionSize;
            entradaSimbolo.SymbolCodes    = this.SymbolCodes;
            entradaSimbolo.ColumnNames    = this.ColumnNames;


            entradaSimbolo.Symbols = _simboloService.GetSimbolsByCodeList(this.SymbolCodesList);

            Simbolo          symbolOne      = entradaSimbolo.Symbols.FirstOrDefault(); /* wired */
            NoCenarioSimbolo scenarioSymbol = _unitOfWork.NoCenarioSimboloRepository.Get(y => y.No.Codigo == codigo && y.CenarioId == scenarioId && y.SimboloId == symbolOne.Id).FirstOrDefault();

            bool scenarioSymbolNotNull = scenarioSymbol != null;

            entradaSimbolo.Detailed   = scenarioSymbolNotNull ? scenarioSymbol.Detalhado.GetValueOrDefault(true) : symbolOne.Preferences.Detailed;
            entradaSimbolo.TypeEntry  = scenarioSymbolNotNull ? scenarioSymbol.TipoEntrada.GetValueOrDefault(0) : symbolOne.Preferences.TypeEntry;
            entradaSimbolo.TypeDetail = scenarioSymbolNotNull ? scenarioSymbol.TipoDetalhe.GetValueOrDefault(0) : symbolOne.Preferences.TypeDetail;
            entradaSimbolo.ExactValue = scenarioSymbolNotNull ? scenarioSymbol.ValorExato.GetValueOrDefault(false) : symbolOne.Preferences.ExactValue;


            entradaSimbolo.Entries = _unitOfWork.GetValuesFromProcedure(scenarioId, codigo, entradaSimbolo.Symbols, entradaSimbolo.TypeEntry,
                                                                        entradaSimbolo.Detailed, entradaSimbolo.ExactValue)
                                     .Select(s => new EntradaItem(s)).ToList();
            this.Symbols = entradaSimbolo.Symbols;
            this.Entries = entradaSimbolo.Entries;

            entradaSimbolo.EntriesProcessed = ProcessedEntries();

            return(entradaSimbolo);
        }
 public EntradaSimbolo EntradaSimbolo(int cenarioId, string codigo, EEntryBySymbolType type)
 {
     return(_entradaSimbolo.GetSimbolo(cenarioId, codigo, type));;
 }