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); }
public virtual SolicitacaoDeManutencao Fabricar(SolicitacaoDeManutencaoDto dto) { var subsidiaria = _subsidiariaRepositorio.ObterPorId(dto.SubsidiariaId); ExcecaoDeDominio.LancarQuando(subsidiaria == null, "Subsidiária não encontrada"); var contratoDto = _buscadorDeContrato.Buscar(dto.NumeroDoContrato).Result; ExcecaoDeDominio.LancarQuando(contratoDto == null, "Contrato não encontrado no ERP"); var tipoDeSolicitacaoDeManutencao = Enum.Parse(typeof(TipoDeSolicitacaoDeManutencao), dto.TipoDeSolicitacaoDeManutencao.ToString()); return(new SolicitacaoDeManutencao( subsidiaria.Id, dto.SolicitanteId, dto.NomeDoSolicitante, (TipoDeSolicitacaoDeManutencao)tipoDeSolicitacaoDeManutencao, dto.Justificativa, contratoDto.Numero, contratoDto.NomeDaTerceirizada, contratoDto.CnpjDaTerceirizada, contratoDto.GestorDoContrato, contratoDto.DataFinalDaVigencia, dto.InicioDesejadoParaManutencao)); }
public void Solicitar(SolicitacaoDeManutencaoDto dto) { var solicitacaoDeManutencao = _fabricaDeSolicitacaoDeManutencao.Fabricar(dto); var solicitacoesDeManutencaoPendentes = _solicitacaoDeManutencaoRepositorio .ObterPendentesDoTipo(solicitacaoDeManutencao.TipoDeSolicitacaoDeManutencao, solicitacaoDeManutencao.IdentificadorDaSubsidiaria); _canceladorDeSolicitacoesDeManutencaoPendentes.Cancelar(solicitacoesDeManutencaoPendentes); _solicitacaoDeManutencaoRepositorio.Adicionar(solicitacaoDeManutencao); }