public ProcessoJuridico AsEntity()
 {
     return(new ProcessoJuridico(
                CodigoAdvogadoResponsavel,
                CodigoCliente,
                new NumeroProcessoJuridico(NumeroProcesso),
                new DescricaoCurta(Titulo),
                new Descricao(Descricao),
                JuizResponsavel,
                EEstadoBrasileiro.ObterPorCodigo(CodigoUF),
                Status,
                TipoDePapel
                ));
 }
        public async Task <RespostaCasoDeUso> Handle(AtualizarProcessoJuridicoCommand request, CancellationToken cancellationToken)
        {
            var processo = await Context.ProcessosJuridicos
                           .FirstOrDefaultAsync(c => c.Codigo == request.Codigo &&
                                                c.CodigoEscritorio == ServicoUsuarios.EscritorioAtual.Codigo &&
                                                !c.Apagado);

            if (processo == null)
            {
                return(RespostaCasoDeUso.ComStatusCode(HttpStatusCode.NotFound));
            }

            processo.AtualizarCliente(request.CodigoCliente);
            processo.AtualizarAdvogadoResponsavel(request.CodigoAdvogadoResponsavel);
            processo.AtualizarTitulo(new DescricaoCurta(request.Titulo));
            processo.AtualizarDescricao(new Descricao(request.Descricao));
            processo.AtualizarNumero(new NumeroProcessoJuridico(request.NumeroProcesso), EEstadoBrasileiro.ObterPorCodigo(request.CodigoUF));
            processo.AtualizarStatus(request.Status);
            processo.AtualizarTipo(request.TipoDePapel);

            if (processo.Invalid)
            {
                return(RespostaCasoDeUso.ComFalha(processo.Notifications));
            }

            await Context.SaveChangesAsync();

            return(RespostaCasoDeUso.ComSucesso(processo.Codigo));
        }