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