public Indication GetById(int id) { IndicationUtil Util = new IndicationService(); if (id == 0) { throw new BadRequestException("ID deve ser diferente de 0"); } Indication indication = _repository.GetById(id); if (Util.ObjectIsNull(indication)) { throw new NotFoundException("Nenhuma indicação encontrada!"); } return(indication); }
public Indication InsertNew(Indication indication) { IndicationUtil util = new IndicationService(); if (util.ObjectIsNull(indication)) { throw new BadRequestException($"Indicação não pode estar vazia!"); } if (util.StringIsNull(indication.DocumentType.ToString())) { throw new BadRequestException($"Preencha o tipo da indicação!"); } if (util.StringIsNull(indication.Document)) { throw new BadRequestException($"Documento da indicação deve estar preenchida"); } switch (indication.DocumentType) { case Enums.DocumentType.CNPJ: if (!_cnpjValidate.ValidaCNPJ(indication.Document)) { throw new BadRequestException($"Este cnpj é inválido: {indication.Document}"); } break; case Enums.DocumentType.CPF: if (!_cpfValidate.ValidaCPF(indication.Document)) { throw new BadRequestException($"Este cpf é inválido: {indication.Document}"); } break; } if (util.StringIsNull(indication.CellPhone) && util.StringIsNull(indication.Phone)) { throw new BadRequestException($"Preencha pelo menos um dos telefones!"); } if (util.StringIsNull(indication.Branch.ToString())) { throw new BadRequestException($"O ramo de atuação da indicação deve ser preenchido"); } Product product = _productRepository.getProduct(indication.ProductId); foreach (Indication i in product.Indications) { if (i.Document == indication.Document) { throw new BadRequestException($"Este produto já foi indicado para empresa: {indication.Document}"); } } try { _repository.Create(indication); return(indication); } catch (Exception e) { throw new Exception($"Algo deu errado: {e}, tente mais tarde ou entre em contato!"); } }