public async Task <ExportCasoResponse> ExportarProcesso(Guid userGuid, int id)
        {
            var retorno = new ExportCasoResponse();

            var processoCompleto = await _processoRepositorio.ListarCompleto(id);

            ProcessoBase processoCadastrado;

            try
            {
                processoCompleto.ValidarParaExportacao();
            }
            catch (InvalidDataException ex)
            {
                //loggar erro
                throw ex;
            }

            try
            {
                processoCadastrado = await _exportService.ExportarCaso(userGuid, processoCompleto);

                processoCadastrado.DefinirUpdate(TipoUpdateEnum.Exportado);

                var camposComplementaresTask = _exportService.ExportarDadosComplementaresDoProcesso(userGuid, processoCompleto.CamposComplementares, processoCompleto.IdDefinitivo.Value);

                await Task.WhenAll(camposComplementaresTask);

                retorno.Tarefas = await ExportarAtividadesDoCaso(userGuid, processoCompleto);

                var atualizarProcessoTask = await _processoRepositorio.Atualizar(processoCadastrado, userGuid);

                retorno.Processo = atualizarProcessoTask;

                return(retorno);
            }
            catch (Exception ex)
            {
                var errors = new List <string>();

                if (ex.Message.Contains("CPF"))
                {
                    errors.Add("CPF da parte inválido. Por favor, revise a lista de envolvidos do caso.");
                    throw new InvalidDataException(errors);
                }

                if (ex.Message.Contains("CNPJ"))
                {
                    errors.Add("CNPJ da parte inválido. Por favor, revise a lista de envolvidos do caso.");
                    throw new InvalidDataException(errors);
                }

                //loggar erro
                throw ex;
            }
        }
Example #2
0
        public async Task ExportarProcesso(Guid userGuid, int id)
        {
            var processoCompleto = await _processoRepositorio.ListarCompleto(id);

            var processoCadastrado = await _exportService.ExportarCaso(userGuid, processoCompleto);

            processoCadastrado.DefinirUpdate(TipoUpdateEnum.Exportado);

            var atualizarProcessoTask    = _processoRepositorio.Atualizar(processoCadastrado, userGuid);
            var camposComplementaresTask = _exportService.ExportarDadosComplementaresDoProcesso(userGuid, processoCompleto.CamposComplementares, processoCompleto.IdDefinitivo.Value);
            var atividadesTask           = ExportarAtividadesDoCaso(userGuid, processoCompleto);

            await Task.WhenAll(atualizarProcessoTask, camposComplementaresTask, atividadesTask);
        }