public static Restricao Create(TipoRestricao tipo, NovaRestricaoDTO dto)
        {
            switch (tipo)
            {
            case TipoRestricao.Generica:
                return(RestricaoGenerica());

            case TipoRestricao.Caber:
                return(RestricaoCaber());

            case TipoRestricao.Material:
                return(RestricaoMaterial());

            case TipoRestricao.Obrigatoria:
                return(RestricaoObrigatoria());

            case TipoRestricao.Opcional:
                return(RestricaoOpcional());

            case TipoRestricao.Ocupacao:
                return(RestricaoOcupacao(dto.Ocupacao));

            default:
                return(null);
            }
        }
Exemple #2
0
        public bool adicionarRestricao(NovaRestricaoDTO novaRestricaoDTO)
        {
            TipoRestricao tipo = novaRestricaoDTO.Restricao;
            Restricao     rest = null;

            foreach (Restricao r in Restricoes)
            {
                if (r.EdoMesmoTipo(tipo))
                {
                    rest = r;
                    break;
                }
                if ((tipo == TipoRestricao.Opcional && r.TipoRestricao == TipoRestricao.Obrigatoria) || (tipo == TipoRestricao.Obrigatoria && r.TipoRestricao == TipoRestricao.Opcional))
                {
                    rest = r;
                    break;
                }
            }
            if (rest != null)
            {
                Restricoes.Remove(rest);
            }
            Restricao nova   = RestricaoFactory.Create(tipo, novaRestricaoDTO);
            bool      valido = false;

            if (valido = nova.Validar(Base, Parte))
            {
                Restricoes.Add(nova);
            }
            return(valido);
        }
Exemple #3
0
        public async Task <IActionResult> AdicionarRestricao(int id, [FromBody] NovaRestricaoDTO novaRestricao)
        {
            if (!RestricaoFactory.Valid(novaRestricao.Restricao))
            {
                return(BadRequest());
            }
            if (!await _agregacaoRepository.Exists(id))
            {
                return(NotFound());
            }
            Agregacao entity = await _agregacaoRepository.GetById(id);

            if (entity.adicionarRestricao(novaRestricao))
            {
                await _agregacaoRepository.Update(id, entity);

                var dto = _mapper.Map <Agregacao, AgregacaoDTO>(entity);
                return(Ok(dto));
            }
            return(BadRequest());
        }