public bool ValidarAssociarResponsavelTecnicoHabilitado(HabilitarEmissaoCFOCFOC habilitacao, List <Cultivar> cultivares) { #region Configurar cultivares = cultivares ?? new List <Cultivar>(); if (habilitacao.Pragas == null || habilitacao.Pragas.Count < 1) { habilitacao = _caracterizacaoBus.ObterHabilitacaoPorCredenciado(habilitacao.Responsavel.Id); if (Validacao.EhValido) { habilitacao.Pragas.ForEach(x => { x.Praga.Culturas = _caracterizacaoBus.ObterCulturas(x.Praga.Id); }); } else { return(false); } } #endregion if (habilitacao.Situacao == (int)eHabilitacaoCFOCFOCSituacao.Inativo) { Validacao.Add(Mensagem.UnidadeConsolidacao.HabilitacaoInativa); return(false); } if (!habilitacao.Pragas.SelectMany(p => p.Praga.Culturas).ToList().Exists(c => cultivares.Exists(x => x.CulturaId == c.Id))) { Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoNaoHabilitadoParaCultura); return(false); } foreach (var habPraga in habilitacao.Pragas) { foreach (var cultivarItem in habPraga.Praga.Culturas.SelectMany(x => x.LstCultivar)) { foreach (var item in cultivares) { if (cultivarItem.Id == item.Id && DateTime.Parse(habPraga.DataFinalHabilitacao) < DateTime.Today) { Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoHabilitacaoPragaVencida); return(false); } } } } return(Validacao.EhValido); }