Пример #1
0
        public async Task DeleteAsync(int empresaId, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var telefone = _repository.GetList(t => t.EmpresaId.Equals(empresaId)).SingleOrDefault();

                if (telefone != null)
                {
                    telefone.Status = 9;
                    telefone.Ativo  = false;
                    _repository.Update(telefone);
                }
            }
            catch (ServiceException e)
            {
                throw e;
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new EnderecoException("Não foi possível remover o endereço da oportunidade.", e);
            }
        }
Пример #2
0
        public async Task <IActionResult> SaveAsync([FromRoute] string token, [FromBody] Especialidade especialidade)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var result = _domain.Save(especialidade);
                return(Ok(result));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (EspecialidadeException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro interno no servidor."));
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="oportunidade"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        /// <exception cref="OportunidadeException"></exception>
        public async Task SaveAsync(Oportunidade oportunidade, string token)
        {
            try
            {
                if (oportunidade.ID == 0)
                {
                    await _segService.ValidateTokenAsync(token);

                    oportunidade.DataCriacao = DateTime.UtcNow;
                    oportunidade.DataEdicao  = DateTime.UtcNow;
                    oportunidade.Ativo       = true;

                    var result = _opRepository.Add(oportunidade);

                    await _endService.SaveEnderecoAsync(oportunidade.Endereco, token);
                }
                else
                {
                    await UpdateAsync(oportunidade, token);
                }
            }
            catch (Exception e)
            {
                throw new OportunidadeException("Não foi possível salvar a oportunidade.", e);
            }
        }
Пример #4
0
        public async Task <IActionResult> GetAllAsync([FromRoute] string token)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var result = _domain.GetAll();
                return(Ok(result));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (DadosBancariosException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro interno no servidor."));
            }
        }
Пример #5
0
        public async Task <IActionResult> SaveAsync([FromRoute] string token, [FromBody] CheckIn checkIn)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var ci = _domain.Save(checkIn);

                return(Ok(ci));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, $"{ e.Message } { e.InnerException.Message }"));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, $"{ e.Message } { e.InnerException.Message }"));
            }
            catch (CheckInException e)
            {
                return(StatusCode(400, $"{ e.Message } { e.InnerException.Message }"));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro ao tentar salvar o check-in recebido. Entre em contato com o suporte."));
            }
        }
Пример #6
0
        public async Task <IActionResult> InserirCreditoAsync([FromRoute] string token, [FromBody] IEnumerable <Extrato> extratos)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var result = _domain.Inserir(extratos);

                var mainExtrato = extratos.FirstOrDefault();

                await _emailHandler.EnviaEmailAsync(token, mainExtrato);

                return(Ok(result));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (ExtratoException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro interno no servidor."));
            }
        }
Пример #7
0
        public async Task <IActionResult> BuscarPorIdsAsync([FromRoute] int idCliente, [FromRoute] string token, [FromBody] int id)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var result = _domain.GetByIdEmpresa(id);

                return(Ok(result));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (EspecialidadeException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro interno no servidor."));
            }
        }
Пример #8
0
        public async Task EnviarEmailAsync(string token, Oportunidade oportunidade)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var(emailConfigs, emailConstants) = GetConfiguration();
                var content = await System.IO.File.ReadAllTextAsync("wwwroot/Criar-Opt.html");

                foreach (var item in emailConstants)
                {
                    var text = string.Empty;

                    if ("endereco".Equals(item.Key.ToLower()))
                    {
                        text = oportunidade.Endereco.GetType().GetProperty("Descricao").GetValue(oportunidade.Endereco, null).ToString();
                    }
                    else
                    {
                        text = oportunidade.GetType().GetProperty(item.Key).GetValue(oportunidade, null).ToString();
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        content = content.Replace(item.Value, text);
                    }
                }

                var configuracoes = await _configService.GetConfiguracoesAsync(oportunidade.IdCliente, oportunidade.UsuarioCriacao);

                var sender = emailConfigs.GetValue <string>("Sender");

                var configuracao = configuracoes.Where(c => c.Chave.Equals(sender)).SingleOrDefault();

                if (!string.IsNullOrEmpty(oportunidade.EmailEmpresa))
                {
                    var emailToClient = new Email(content, $"Oportunidade: { oportunidade.Nome }", configuracao.Valor, oportunidade.EmailEmpresa, oportunidade.IdCliente);
                    await _emailService.EnviarEmailAsync(emailToClient, oportunidade.IdCliente, oportunidade.UsuarioCriacao);
                }
            }
            catch (Exception e)
            {
                //Erro ao enviar e-mail não impacta no processo
            }
        }
Пример #9
0
        public async Task <IActionResult> GenerateQrCode([FromRoute] int idCliente, [FromRoute] int idUsuario, [FromRoute] string token)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                if (_domain.GetLast(idCliente, out var tokenQr))
                {
                    tokenQr.QrCode = _handler.GenerateQr(tokenQr.Nome, 250, 250);
                    return(Ok(tokenQr));
                }

                var milliseconds = _configuration.GetValue <string>("TokenExpiration");

                var options = new TokenOptions(DateTime.UtcNow, Guid.NewGuid().ToString(), milliseconds, idUsuario, idCliente);
                tokenQr = new Token(options, true, string.Empty, true, 1);

                var newToken = _domain.Save(tokenQr);
                newToken.QrCode = _handler.GenerateQr(newToken.Nome, 250, 250);

                return(Ok(newToken));
            }
            catch (InvalidTokenException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (TokenException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (QrCodeException e)
            {
                return(StatusCode(400, e.Message));
            }
            catch (ServiceException e)
            {
                return(StatusCode(401, e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Ocorreu um erro interno no servidor."));
            }
        }
Пример #10
0
        public async Task <IEnumerable <TipoEmpresa> > GetAllAsync(int idCliente, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var result = _repository.GetList(te => te.IdCliente.Equals(idCliente) && te.Ativo);

                return(result);
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (ServiceException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new EmpresaException("Não foi possível recuperar a lista de tipos de empresas.", e);
            }
        }
Пример #11
0
        public async Task DeleteAsync(Contato entity, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                entity.Status = 9;
                entity.Ativo  = false;
                _repository.Update(entity);
            }
            catch (ServiceException e)
            {
                throw e;
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new ContatoException("Não foi possível remover o contato da empresa.", e);
            }
        }
Пример #12
0
        public async Task <IEnumerable <OportunidadeStatus> > GetAllAsync(int idCliente, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var result = _osRepository.GetList(s => s.IdCliente.Equals(idCliente));
                return(result);
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new OportunidadeException("Não foi possível recuperar a lista de status das oportunidades.", e);
            }
        }
Пример #13
0
        public async Task DeleteAsync(Empresa entity, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var empresa = _repository.GetList(e => e.ID.Equals(entity.ID)).SingleOrDefault();
                empresa.Status = 9;
                empresa.Ativo  = false;
                _repository.Update(empresa);
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (ServiceException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new EmpresaException("Não foi possível remover a empresa informada.", e);
            }
        }
Пример #14
0
        public async Task EnviaEmailAsync(string token, Extrato extrato)
        {
            try
            {
                await _service.ValidateTokenAsync(token);

                var(emailConfigs, emailConstants) = GetConfiguration();

                var content = await System.IO.File.ReadAllTextAsync("wwwroot/Credito.html");

                foreach (var item in emailConstants)
                {
                    var text = extrato.GetType().GetProperty(item.Key).GetValue(extrato, null).ToString();

                    if (!string.IsNullOrEmpty(text))
                    {
                        content = content.Replace(item.Value, text);
                    }
                }

                var configuracoes = await _configService.GetConfiguracoesAsync(extrato.IdCliente, extrato.UsuarioCriacao);

                var sender = emailConfigs.GetValue <string>("Sender");

                var configuracao = configuracoes.Where(c => c.Chave.Equals(sender)).SingleOrDefault();

                if (!string.IsNullOrEmpty(extrato.EmailEmpresa))
                {
                    var emailToClient = new Email(content, "Crédito em conta StaffPro", configuracao.Valor, extrato.EmailEmpresa, extrato.IdCliente);
                    await _emailService.EnviarEmailAsync(emailToClient, extrato.IdCliente, extrato.UsuarioCriacao);
                }
            }
            catch (Exception e)
            {
                //Erro ao enviar e-mail não impacta no processo
            }
        }
Пример #15
0
        public async Task DeleteAsync(Endereco entity, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                var endereco = _edRepository.GetList(e => e.EmpresaId.Equals(entity.EmpresaId)).SingleOrDefault();
                endereco.Status = 9;
                endereco.Ativo  = false;
                _edRepository.Update(endereco);
            }
            catch (ServiceException e)
            {
                throw e;
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new EnderecoException("Não foi possível remover o endereço da oportunidade.", e);
            }
        }
Пример #16
0
        public async Task <Endereco> SaveAsync(Endereco entity, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                if (entity.ID == 0)
                {
                    entity.DataCriacao = DateTime.UtcNow;
                    entity.DataEdicao  = DateTime.UtcNow;
                    entity.ID          = _edRepository.Add(entity);
                }
                else
                {
                    entity = await UpdateAsync(entity, token);
                }

                return(entity);
            }
            catch (Exception e)
            {
                throw new EnderecoException("Não foi possível salvar o endereço da oportunidade. Entre em contato com o suporte.", e);
            }
        }
Пример #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        /// <exception cref="OportunidadeException"></exception>
        /// <exception cref="InvalidTokenException"></exception>
        public async Task <Oportunidade> SaveAsync(Oportunidade entity, string token)
        {
            try
            {
                await _segService.ValidateTokenAsync(token);

                if (entity.ID == 0)
                {
                    entity.DataCriacao = DateTime.UtcNow;
                    entity.DataEdicao  = DateTime.UtcNow;
                    entity.Ativo       = true;

                    var result = _opRepository.Add(entity);

                    entity.Endereco.OportunidadeId = result;
                }
                else
                {
                    entity = await UpdateAsync(entity, token);
                }

                return(entity);
            }
            catch (InvalidTokenException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new OportunidadeException("Não foi possível completar a operação.", e);
            }
        }