public GraphLinksModel CreateFluxograma(int fluxogramaId, int topologia, FluxogramaTipo tipoFluxograma) { return(new GraphLinksModel { NodeDataArray = pr_VCM_NoDrawingSelect(fluxogramaId), LinkDataArray = pr_VCM_CorrenteDrawingSelect(fluxogramaId), Erros = Validate(tipoFluxograma, topologia) }); }
public List <string> Validate(FluxogramaTipo tipoFluxograma, int topologiaId) { List <string> validateErrors = new List <string>(); if (_unitOfw.ProdutoRepository.Get(y => y.TopologiaId == topologiaId).Count() == 0) { validateErrors.Add("Não há Produto para a topologia em uso."); } if (_unitOfw.PeriodoRepository.Get(y => y.TopologiaId == topologiaId).Count() == 0) { validateErrors.Add("Não há Período para a topologia em uso."); } if (tipoFluxograma == FluxogramaTipo.Cenario) { if (_unitOfw.EstadoRepository.Get(y => y.TopologiaId == topologiaId).Count() == 0) { validateErrors.Add("Não há Estado para a topologia em uso."); } if (_unitOfw.ContratoRepository.Get(y => y.TopologiaId == topologiaId && y.TipoEntidade.Nome == "TakeOrPay" && y.TipoEntidade.Nome == "VendaFamilia" && y.TipoEntidade.Nome == "VendaProduto").Count() == 0) { validateErrors.Add("Não há TakeOrPay e/ou VendaFamilia para a topologia em uso."); } var correntes = _unitOfw.CorrenteRepository.Get(y => y.TopologiaId == topologiaId).ToList(); var correnteNaoContemProduto = correntes.Where(x => !_unitOfw.CorrenteProdutoRepository.Get().Select(y => y.CorrenteId).Contains(x.Id)).ToList(); if (correnteNaoContemProduto.Count() > 0) { var elementos = correnteNaoContemProduto.Select(y => y.Codigo).Join(","); string msg = correnteNaoContemProduto.Count > 1 ? $"Os elementos {elementos} não contém produtos." : $"O elemento {elementos} não contém produtos."; validateErrors.Add(msg); } // 1. Verifica se existem contratos por produto cadastrados na Topologia if (_unitOfw.ContratoRepository.Get(y => y.TopologiaId == topologiaId && y.TipoEntidade.Nome == "VendaProduto").Count() > 0) { //Continuar fazendo a validação da classe MercadoContratoValidation linha 48 } } return(validateErrors); }