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 Autor(int identificador, string nome) { ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(nome), "Nome do solicitante é inválido"); Identificador = identificador; Nome = nome; }
public Contrato(string numero, string nomeDaTerceirizada, string cnpjDaTerceirizada, string gestorDoContrato, DateTime dataFinalDaVigencia) { ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(numero), "Número do contrato é inválido"); ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(nomeDaTerceirizada), "Nome da terceirizada é inválida"); ExcecaoDeDominio.LancarQuando( string.IsNullOrEmpty(cnpjDaTerceirizada) || cnpjDaTerceirizada.Length != 14, "CNPJ da terceirizada é inválida"); ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(gestorDoContrato), "Gestor do contrato é inválido"); ExcecaoDeDominio.LancarQuando(dataFinalDaVigencia.Date < DateTime.Now.Date, "Vigência do contrato está vencido"); Numero = numero; NomeDaTerceirizada = nomeDaTerceirizada; CnpjDaTerceirizada = cnpjDaTerceirizada; GestorDoContrato = gestorDoContrato; DataFinalDaVigencia = dataFinalDaVigencia; }
public void Analisar(AnaliseDeAprovacaoDto analiseDeAprovacaoDto) { var solicitacaoDeManutencao = _solicitacaoDeManutencaoRepositorio.ObterPorId(analiseDeAprovacaoDto.IdDaSolicitacao); ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao == null, "Solicitação não encontrada"); var aprovador = new Autor(analiseDeAprovacaoDto.IdentificadorDoAprovador, analiseDeAprovacaoDto.NomeDoAprovador); if (analiseDeAprovacaoDto.Aprovado) { Aprovar(solicitacaoDeManutencao, aprovador); } else { Reprovar(solicitacaoDeManutencao, aprovador); } }
public async Task Analisar(AnaliseDeAprovacaoDto analiseDeAprovacaoDto) { var solicitacaoDeManutencao = _solicitacaoDeManutencaoRepositorio.ObterPorId(analiseDeAprovacaoDto.IdDaSolicitacao); ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao == null, "Solicitação não encontrada"); ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao.Reprovada(), "Solicitação já analisada e está reprovada"); ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao.Aprovada(), "Solicitação já analisada e está aprovada"); var aprovador = new Autor(analiseDeAprovacaoDto.AprovadorId, analiseDeAprovacaoDto.NomeDoAprovador); if (analiseDeAprovacaoDto.Aprovado) { await Aprovar(solicitacaoDeManutencao, aprovador); } else { Reprovar(solicitacaoDeManutencao, aprovador); } }
public SolicitacaoDeManutencao(string identificadorDaSubsidiaria, int identificadorDoSolicitante, string nomeDoSolicitante, TipoDeSolicitacaoDeManutencao tipoDeSolicitacaoDeManutencao, string justificativa, string numeroDoContrato, string nomeDaTerceirizada, string cnpjDaTerceirizada, string gestorDoContrato, DateTime dataFinalDaVigência, DateTime inicioDesejadoParaManutencao) { ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(identificadorDaSubsidiaria), "Subsidiária é inválida"); ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(justificativa), "Justificativa inválida"); ExcecaoDeDominio.LancarQuando(inicioDesejadoParaManutencao.Date < DateTime.Now.Date, "Data do inicio desejado não pode ser inferior a data de hoje"); Solicitante = new Autor(identificadorDoSolicitante, nomeDoSolicitante); IdentificadorDaSubsidiaria = identificadorDaSubsidiaria; TipoDeSolicitacaoDeManutencao = tipoDeSolicitacaoDeManutencao; Justificativa = justificativa; Contrato = new Contrato(numeroDoContrato, nomeDaTerceirizada, cnpjDaTerceirizada, gestorDoContrato, dataFinalDaVigência); InicioDesejadoParaManutencao = inicioDesejadoParaManutencao; DataDaSolicitacao = DateTime.Now; StatusDaSolicitacao = StatusDaSolicitacao.Pendente; }
public Subsidiaria(string nome) { ExcecaoDeDominio.LancarQuando(string.IsNullOrEmpty(nome), "Nome da subsidiária é inválido"); Nome = nome; }