Example #1
0
        public IHttpActionResult Register(RegisterModel registerModel)
        {
            var     pessoa  = _pessoaServico.BuscarPorId(registerModel.Pessoa.Id);
            Usuario usuario = null;

            if (pessoa != null)
            {
                usuario = Servico.BuscarPor(x => x.Pessoa.Id == pessoa.Id).FirstOrDefault();
            }
            string senha = null;

            if (usuario != null)
            {
                senha = usuario != null && string.IsNullOrEmpty(registerModel.Senha) && string.IsNullOrEmpty(registerModel.FacebookId) ? usuario.Senha : registerModel.Senha;
            }

            if (registerModel.Id <= 0 && pessoa == null)
            {
                pessoa    = registerModel.Pessoa;
                pessoa.Id = _pessoaServico.SalvarComRetorno(registerModel.Pessoa);

                Servico.Register(pessoa, senha, registerModel.Id, registerModel.FacebookId, true);
            }
            else
            {
                foreach (var contato in registerModel.Pessoa.Contatos)
                {
                    if (pessoa.Contatos.Count(x => x.Contato.Tipo == contato.Contato.Tipo) >= 1)
                    {
                        var contatoEmail = pessoa.Contatos.FirstOrDefault(x => x.Contato.Tipo == Entidade.Uteis.TipoContato.Email);
                        if (contato.Contato.Tipo == Entidade.Uteis.TipoContato.Email)
                        {
                            if (pessoa.Contatos.Count(x => x.Contato.Email == contato.Contato.Email) <= 0)
                            {
                                pessoa.Contatos.Add(contato);
                                pessoa.Contatos.Remove(contatoEmail);
                            }
                        }

                        var contatoCelular = pessoa.Contatos.FirstOrDefault(x => x.Contato.Tipo == Entidade.Uteis.TipoContato.Celular);
                        if (contato.Contato.Tipo == Entidade.Uteis.TipoContato.Celular)
                        {
                            if (pessoa.Contatos.Count(x => x.Contato.Numero == contato.Contato.Numero) <= 0)
                            {
                                pessoa.Contatos.Add(contato);
                                pessoa.Contatos.Remove(contatoCelular);
                            }
                        }
                    }
                }

                _pessoaServico.Salvar(pessoa);

                Servico.Register(pessoa, senha, registerModel.Id, registerModel.FacebookId);
            }

            return(Created(new Uri(VirtualPathUtility.AppendTrailingSlash(Request.RequestUri.ToString().Replace(Request.RequestUri.AbsolutePath, "/api/client")) + registerModel.Pessoa.Id), registerModel.Pessoa.Id));
        }
Example #2
0
        public IEnumerable <Models.CartaoModelView> GetByPessoa(int id)
        {
            try
            {
                var pessoa  = _pessoaServico.BuscarPorId(id);
                var cartoes = _cartaoServico.GetByPessoa(id)?.Select(x => new Models.CartaoModelView(x))?.ToList();

                //Como não armazenamos a senha do cartão então no caso não pode ser consultado o saldo dos cartões neste momento
                //foreach (var itemCartao in cartoes)
                //{
                //    try
                //    {
                //        var cartaoRetorno = _apiTransacaoCartaoInfox.Saldo(pessoa.Id.ToString(), itemCartao.NumeroSemMascara.ExtractLettersAndNumbers(), itemCartao.Senha);
                //        if (cartaoRetorno.Contains("SALDO"))
                //        {
                //            var card = new JavaScriptSerializer().Deserialize<Aplicacao.ApiInfox.Models.CartaoModelView>(cartaoRetorno);
                //            itemCartao.SaldoDisponivel = card.SaldoDisponivel;
                //            itemCartao.LimiteCredito = card.LimiteCredito;
                //            itemCartao.DiaVencimento = card.DiaVencimento;
                //        }
                //    }
                //    catch (Exception ex)
                //    {
                //        var message = new HttpResponseMessage(HttpStatusCode.InternalServerError);
                //        message.Content = new StringContent($"Ocorreu um erro ao realizar a busca do saldo! Erro:[{ex.Message}]");
                //        throw new HttpResponseException(message);
                //    }
                //}

                return(cartoes);
            }
            catch (NotFoundException)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
        }
Example #3
0
        public IHttpActionResult Register(RegisterModel registerModel)
        {
            var pessoa  = _pessoaServico.BuscarPorId(registerModel.Pessoa.Id);
            var usuario = Servico.BuscarPorId(registerModel.Id);
            var senha   = usuario != null && string.IsNullOrEmpty(registerModel.Senha) && string.IsNullOrEmpty(registerModel.FacebookId) ? usuario.Senha : registerModel.Senha;

            if (registerModel.Id <= 0 && pessoa == null)
            {
                pessoa    = registerModel.Pessoa;
                pessoa.Id = _pessoaServico.SalvarComRetorno(registerModel.Pessoa);

                Servico.Register(pessoa, senha, registerModel.Id, registerModel.FacebookId);
            }
            else
            {
                _pessoaServico.ValidaPessoa(pessoa, registerModel.Id);

                // Merge cartao
                var cartoes = _cartaoServico.BuscarPor(x => x.Pessoa.Id.Equals(pessoa.Id));
                pessoa.Cartoes = cartoes;

                // Merge endereco
                var enderecos = _enderecoServico.BuscarPor(x => x.Pessoa.Id.Equals(pessoa.Id));
                pessoa.EnderecosEntrega = enderecos;

                _pessoaServico.Salvar(pessoa);

                foreach (var documento in pessoa.Documentos)
                {
                    documento.Pessoa = pessoa;
                    _documentoServico.Salvar(documento);
                }
                foreach (var contato in pessoa.Contatos)
                {
                    contato.Contato.Pessoa = pessoa;
                    _contatoServico.Salvar(contato.Contato);
                }

                Servico.Register(pessoa, senha, registerModel.Id, registerModel.FacebookId);
            }

            return(Created(new Uri(VirtualPathUtility.AppendTrailingSlash(Request.RequestUri.ToString().Replace(Request.RequestUri.AbsolutePath, "/api/client")) + registerModel.Pessoa.Id), registerModel.Pessoa.Id));
        }