示例#1
0
        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);
        }
示例#2
0
        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!");
            }
        }