public MercadoCenario MercadoCenarioFind(int elementoId, int cenarioId)
        {
            //pr_VCane_MercadoCenarioFind

            string codigo = _unitOfw.NoRepository.Get(y => y.Id == elementoId).FirstOrDefault()?.Codigo;

            if (!string.IsNullOrEmpty(codigo))
            {
                MercadoCenario mercadoCenario = _unitOfw.MercadoCenarioRepository.Get(y => y.NoId == elementoId && y.CenarioId == cenarioId).FirstOrDefault();
                mercadoCenario.IsSpot = _unitOfw.MercadoContratoRepository.Count(y => y.MercadoId == mercadoCenario.NoId) > 0;

                if (mercadoCenario == null)
                {
                    int tipoDemandaId = _unitOfw.TipoDemandaRepository.Get(y => y.Nome == "Produto").FirstOrDefault().Id;

                    _unitOfw.MercadoCenarioRepository.Insert(new MercadoCenario
                    {
                        NoId                   = elementoId,
                        CenarioId              = cenarioId,
                        TipoDemandaId          = tipoDemandaId,
                        IncluirCalculoImpostos = false
                    });
                }
                return(mercadoCenario);
            }

            return(null);
        }
        public bool ValidateMC(Collection <EntradaRequest> entradas)
        {
            return(true);


            //Continuar escrevendo o metodo de validação;
            if (entradas.Count > 0)
            {
                this.mercadoCenario = _mercadoAppService.MercadoCenarioFindByCodigo(entradas[0].EntidadeCodigo1, entradas[0].CenarioId);
                this.FindConfiguracao(entradas[0].EntidadeCodigo1);

                if (mercadoCenario.IsSpot)
                {
                    //validation = new entradacomparevalidation(entradas, sessioninfo.cadeiaid, demandalimminimo, demandalimmaximo);
                }
                //else
                //{
                //    if (this.configuracao.TipoEntrada.Value == (int)TiposConfiguracaoEntrada.ComExcedente)    // Para o caso de Valor Fixo com excedente
                //    {
                //        validation = new EntradaCompareValidation(entradas, SessionInfo.CadeiaId, DemandaLimMinimoContratosComExcedente, DemandaLimMaximoContratosComExcedente);
                //    }
                //    else
                //    {
                //        validation = new EntradaCompareValidation(entradas, SessionInfo.CadeiaId, DemandaLimMinimoContratos, DemandaLimMaximoContratos);
                //    }
                //}
                //validation.OnError = this.OnValidationError;

                //return validation.Validate();
            }
            return(true);
        }
        public MercadoCenario MercadoCenarioFindByCodigo(string codigo, int cenarioId)
        {
            //pr_VCane_MercadoCenarioFindByCodigo
            MercadoCenario mercadoCenario = new MercadoCenario();

            int tipoEntidadeMercado = _unitOfw.TipoEntidadeRepository.Get(y => y.Nome == "Mercado").FirstOrDefault().Id;

            var elementoId = (from n in _unitOfw.NoRepository.Get(y => y.Codigo == codigo && y.TipoEntidadeId == tipoEntidadeMercado)
                              join c in _unitOfw.CenarioRepository.Get(y => y.Id == cenarioId) on n.TopologiaId equals c.TopologiaId
                              select n.Id).FirstOrDefault();

            if (elementoId > 0)
            {
                mercadoCenario = MercadoCenarioFind(elementoId, cenarioId);
            }

            return(mercadoCenario);
        }