public override Task <bool> ValidateModelAsync(CriarProcessoCommand model) { var result = this.Validate(model); if (!result.IsValid) { foreach (var error in result.Errors) { this.AddError(error.ErrorCode, error.ErrorMessage); } return(Task.FromResult(false)); } Util.NumeroProcesso numeroProcesso = model.NumeroProcesso; var processo = this.processoRepository.Obter(p => p.NumeroProcesso == numeroProcesso.ToString()).FirstOrDefault(); if (processo != null) { this.AddError(NotificationKeys.AlreadyExists, string.Format(ErrorMessages.ProcessoJaExiste, model.NumeroProcesso)); return(Task.FromResult(false)); } var situacaoProcesso = this.situacaoProcessoRepository.ObterPorId(model.SituacaoProcessoId.Value); if (situacaoProcesso == null) { this.AddError(NotificationKeys.NotFound, string.Format(ErrorMessages.SituacaoNaoEncontrada, model.SituacaoProcessoId)); return(Task.FromResult(false)); } var responsaveisNaoEncontrados = model.ResponsaveisIds.Where(rId => this.responsavelRepository.ObterPorId(rId) == null); if (responsaveisNaoEncontrados?.Any() == true) { this.AddError(NotificationKeys.NotFound, ErrorMessages.ResponsavelNaoEncontrado); return(Task.FromResult(false)); } processo = new Processo { ProcessoVinculadoId = model.ProcessoVinculadoId }; if (!this.processoDomainService.ValidarHierarquiaQuantidade(processo)) { this.AddError(NotificationKeys.InvalidArgument, ErrorMessages.ProcessoQuantidadeHierarquiaExcedido); return(Task.FromResult(false)); } if (!this.processoDomainService.ValidarNaoExistenteNaHierarquia(processo)) { this.AddError(NotificationKeys.InvalidArgument, ErrorMessages.ProcessoJaConstaNaHierarquia); return(Task.FromResult(false)); } return(Task.FromResult(true)); }
public void ValidarNumeroProcesso(string numeroProcesso, string numeroProcessoEsperado) { Util.NumeroProcesso nProcesso = numeroProcesso; nProcesso.ToString().Should().Be(numeroProcessoEsperado); }
public override async Task <RequestResponseWrapper <PagedList <ProcessoDto> > > Handle(ObterProcessosQuery request, CancellationToken cancellationToken) { try { if (await this.ValidateAsync(request)) { var query = this.processoRepository.Query(); if (!string.IsNullOrEmpty(request.NumeroProcesso)) { Util.NumeroProcesso numeroProcesso = request.NumeroProcesso; query = query.Where(p => p.NumeroProcesso == numeroProcesso.ToString()); } if (request.DataDistribuicaoInicio.HasValue) { query = query.Where(p => p.DataDistribuicao >= request.DataDistribuicaoInicio); } if (request.DataDistribuicaoFim.HasValue) { query = query.Where(p => p.DataDistribuicao <= request.DataDistribuicaoFim); } if (request.SegredoJustica.HasValue) { query = query.Where(p => p.SegredoJustica == request.SegredoJustica.Value); } if (!string.IsNullOrEmpty(request.PastaFisicaCliente)) { query = query.Where(p => p.PastaFisicaCliente.ContainsIgnoreCase(request.PastaFisicaCliente)); } if (request.SituacaoProcessoId.HasValue) { query = query.Where(p => p.SituacaoId == request.SituacaoProcessoId); } if (!string.IsNullOrEmpty(request.NomeResponsavel)) { query = query.Where(p => p.ProcessoResponsaveis.Any(r => r.Responsavel.Nome.ToLower().Contains(request.NomeResponsavel.ToLower()))); } var pagedList = PagedList <Processo> .Create(query, request.PageNumber, request.PageSize); var processoDtos = pagedList.Select(p => new ProcessoDto { Id = p.Id, NumeroProcesso = p.NumeroProcesso, DataDistribuicao = p.DataDistribuicao, SegredoJustica = p.SegredoJustica, PastaFisicaCliente = p.PastaFisicaCliente, Descricao = p.Descricao, SituacaoProcessoId = p.SituacaoId, Responsaveis = p.Responsaveis?.Select(r => new ResponsavelDto { Id = r.Id, Cpf = r.Cpf, Email = r.Email, Nome = r.Nome, Foto = r.Foto }) }); var pagedResult = PagedList <ProcessoDto> .Create(processoDtos.ToList(), pagedList.TotalCount, request.PageNumber, request.PageSize); return(new RequestResponseWrapper <PagedList <ProcessoDto> >(true, pagedResult)); } } catch (System.Exception e) { this.logger.LogError(e, "Erro Inesperado"); this.NotificationContext.Add(NotificationKeys.UnexpectedError, "Erro inesperado."); } return(new RequestResponseWrapper <PagedList <ProcessoDto> >(false, null)); }