public async Task <string> Handle(SolicitarInclusaoComunicadoEscolaAquiCommand request, CancellationToken cancellationToken) { var comunicado = new Comunicado(); var comunicadoServico = new ComunicadoInserirAeDto(); await ValidarInsercao(request); MapearParaEntidade(request, comunicado); try { _unitOfWork.IniciarTransacao(); var id = await _repositorioComunicado.SalvarAsync(comunicado); // Grupos await SalvarComunicadosParaGrupos(id, request); comunicado.AtualizarIdAlunos(); comunicado.AtualizarIdTurmas(); // Turmas await SalvarComunicadosParaTurmas(comunicado.Turmas); // Alunos await SalvarComunicadosParaAlunos(comunicado.Alunos); MapearParaEntidadeServico(comunicadoServico, comunicado); // Criar comunicado no Escola Aqui await _servicoAcompanhamentoEscolar.CriarComunicado(comunicadoServico); _unitOfWork.PersistirTransacao(); } catch { _unitOfWork.Rollback(); throw; } return("Comunicado criado com sucesso!"); }
public async Task <string> Inserir(ComunicadoInserirDto comunicadoDto) { Comunicado comunicado = new Comunicado(); ComunicadoInserirAeDto comunicadoServico = new ComunicadoInserirAeDto(); await ValidarInsercao(comunicadoDto); MapearParaEntidade(comunicadoDto, comunicado); try { unitOfWork.IniciarTransacao(); var id = await repositorio.SalvarAsync(comunicado); await SalvarGrupos(id, comunicadoDto); comunicado.AtualizarIdAlunos(); comunicado.AtualizarIdTurmas(); await SalvarTurmas(comunicado.Turmas); await SalvarAlunos(comunicado.Alunos); MapearParaEntidadeServico(comunicadoServico, comunicado); await servicoAcompanhamentoEscolar.CriarComunicado(comunicadoServico); unitOfWork.PersistirTransacao(); } catch { unitOfWork.Rollback(); throw; } return("Comunicado criado com sucesso"); }