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); } }
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); }
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()); }