Exemplo n.º 1
0
        public void Solicitar(SolicitacaoDeManutencaoDto dto)
        {
            var subsidiaria = _subsidiariaRepositorio.ObterPorId(dto.SubsidiariaId);

            var contratoDto = _buscadorDeContrato.Buscar(dto.NumeroDoContrato).Result;

            ExcecaoDeDominio.LancarQuando(contratoDto == null, "Contrato não encontrado no ERP");

            var tipoDeSolicitacaoDeManutencao =
                Enum.Parse <TipoDeSolicitacaoDeManutencao>(dto.TipoDeSolicitacaoDeManutencao.ToString());
            var solicitacaoDeManutencao =
                new SolicitacaoDeManutencao(
                    subsidiaria,
                    dto.SolicitanteId,
                    dto.NomeDoSolicitante,
                    tipoDeSolicitacaoDeManutencao,
                    dto.Justificativa,
                    contratoDto.Numero,
                    contratoDto.NomeDaTerceirizada,
                    contratoDto.CnpjDaTerceirizada,
                    contratoDto.GestorDoContrato,
                    contratoDto.DataFinalDaVigencia,
                    dto.InicioDesejadoParaManutencao);

            var solicitacoesDeManutencaoPendentes =
                _solicitacaoDeManutencaoRepositorio
                .ObterPendentesDoTipo(tipoDeSolicitacaoDeManutencao, subsidiaria);

            _canceladorDeSolicitacoesDeManutencaoPendentes.Cancelar(solicitacoesDeManutencaoPendentes);

            _solicitacaoDeManutencaoRepositorio.Adicionar(solicitacaoDeManutencao);
        }
Exemplo n.º 2
0
        public void Solicitar(SolicitacaoDeManutencaoDto dto)
        {
            var solicitacaoDeManutencao = _fabricaDeSolicitacaoDeManutencao.Fabricar(dto);

            var solicitacoesDeManutencaoPendentes =
                _solicitacaoDeManutencaoRepositorio
                .ObterPendentesDoTipo(solicitacaoDeManutencao.TipoDeSolicitacaoDeManutencao, solicitacaoDeManutencao.IdentificadorDaSubsidiaria);

            _canceladorDeSolicitacoesDeManutencaoPendentes.Cancelar(solicitacoesDeManutencaoPendentes);
            _solicitacaoDeManutencaoRepositorio.Adicionar(solicitacaoDeManutencao);
        }