Esempio n. 1
0
        public async Task<Usuario> AtualizarCategoriasFB(Usuario user)
        {
            using (var client = CallAPI.RetornaClientHttp())
            {
                var _json = this.MontaUsuarioMobile2(user);
                var usuarioJSON = JsonConvert.SerializeObject(_json);
                response = await client.PostAsJsonAsync(Constants.uriAtualizaCategoriasFB, usuarioJSON);

                if (response.IsSuccessStatusCode)
                {
                    var json = await response.Content.ReadAsStringAsync();
                    var usuario = JsonConvert.DeserializeObject<Usuario>(json);

                    var dbCategoria = new Repositorio<Categoria>();
                    var cats = string.Empty;

                    foreach (var item in usuario.Categorias)
                    {
                        var cat = await dbCategoria.RetornarPorId(item.Id);
                        cat.UsuarioId = usuario.Id;

                        await dbCategoria.Atualizar(cat);

                        cats += item.Id.ToString() + ';';
                    }
                    cats = cats.TrimEnd(';');
                    usuario.CategoriaMobileSelection = cats;

                    var dbFacebook = new Repositorio<FacebookInfos>();
                    var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault();

                    if (_token != null)
                    {
                        usuario.FacebookID = _token.user_id;
                        usuario.FacebookToken = _token.access_token;
                    }

                    var dbUsuario = new Repositorio<Usuario>();
                    await dbUsuario.Atualizar(usuario);

                    return (await dbUsuario.RetornarTodos()).First();
                }

                throw new ArgumentException("Erro Geral");
            }
        }
Esempio n. 2
0
        public async Task<Usuario> CadastraNovoUsuario(Usuario NovoUsuario, bool fromFB = false)
        {
            using (var client = CallAPI.RetornaClientHttp())
            {
                UsuarioMobile json;
                var usuarioJSON = string.Empty;

                if (fromFB)
                {
                    json = this.MontaUsuarioMobile(NovoUsuario);
                    usuarioJSON = JsonConvert.SerializeObject(json);
                }
                else
                {
                    usuarioJSON = JsonConvert.SerializeObject(NovoUsuario);
                }
               
                response = await client.PostAsJsonAsync(Constants.uriNovoCadastro, usuarioJSON);

                if (response.IsSuccessStatusCode)
                {
                    if (!fromFB)
                    {
                        var id = await response.Content.ReadAsAsync<int>();
                        NovoUsuario.Id = id;
                        return await Task.FromResult(NovoUsuario);
                    }
                    else
                    {
                        var usuario = await response.Content.ReadAsAsync<Usuario>();
                        return await Task.FromResult(usuario);
                    }
                }
                else if (!response.IsSuccessStatusCode && response.StatusCode == HttpStatusCode.BadRequest)
                    return null;

                throw new ArgumentException("Erro Geral");
            }
        }
Esempio n. 3
0
 private UsuarioMobile2 MontaUsuarioMobile2(Usuario user)
 {
     return new UsuarioMobile2
     {
         Id = user.Id,
         Nome = user.Nome,
         EmpresaApp = user.EmpresaApp,
         CategoriaMobileSelection = user.CategoriaMobileSelection,
         FacebookID = user.FacebookID,
         Email = user.Email
     };
 }
Esempio n. 4
0
 private UsuarioMobile MontaUsuarioMobile(Usuario user)
 {
     return new UsuarioMobile
     {
         Id = 0,
         Nome = user.Nome,
         EmpresaApp = user.EmpresaApp,
         CategoriaMobileSelection = user.CategoriaMobileSelection,
         FacebookID = user.FacebookID
     };
 }
Esempio n. 5
0
        public async Task<bool> AtualizarUsuario(Usuario NovoUsuario)
        {
            using (var client = CallAPI.RetornaClientHttp())
            {
                var usuarioJSON = JsonConvert.SerializeObject(NovoUsuario);
                response = await client.PostAsJsonAsync(Constants.uriAtualizaUsuario, usuarioJSON);

                if (response.IsSuccessStatusCode)
                    return await Task.FromResult(true);

                return await Task.FromResult(false);
            }
        }
        public async Task<bool> AtualizarCadastro(Usuario user, INavigation nav, DateTime? dataNascimento, int? sexo)
        {
            var categorias = string.Empty;

            if (Device.OS == TargetPlatform.iOS)
            {
                if (App.Current.Properties.ContainsKey("Categorias_iOS"))
                {
                    var c = (ICollection<Categoria>)App.Current.Properties["Categorias_iOS"];

                    if (c != null && c.Any())
                    {
                        foreach (var item in c)
                        {
                            categorias += item.Id.ToString() + ';';
                        }
                    }
                }
            }
            else if (this.Categorias != null & this.Categorias.Any())
            {
                foreach (var item in this.Categorias)
                {
                    categorias += item.Id.ToString() + ';';
                }
            }

            categorias = categorias.TrimEnd(new char[]{ ';' });

            user.CategoriaMobileSelection = categorias;

            var dbFacebook = new Repositorio<FacebookInfos>();
            var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault();

            if (_token != null)
            {
                user.FacebookID = _token.user_id;
                user.FacebookToken = _token.access_token;
            }

            user.EmpresaApp = 1;

            if (dataNascimento.HasValue)
                user.DataNascimento = dataNascimento;

            if (sexo != null && sexo > 0)
            {
                if ((int)sexo == 1)
                    user.Sexo = EnumSexo.Masculino;
                else
                    user.Sexo = EnumSexo.Feminino;
            }

            var atualizou = await service.AtualizarUsuario(user);

            if (atualizou)
            {

                var dbUsuario = new Repositorio<Usuario>();
                await dbUsuario.Atualizar(user);

                Acr.UserDialogs
                    .UserDialogs
                    .Instance
                    .ShowSuccess("Cadastro Atualizado com sucesso!");
                return await Task.FromResult(true);
            }
            else
            {
                await Acr.UserDialogs
                    .UserDialogs
                    .Instance
                    .AlertAsync("Erro na atualização, tente novamente", AppResources.TituloErro, "OK");
                return await Task.FromResult(false);
            }
        }
 public CadastroViewModel(ILogin service)
 {
     //this.btnCadastrar_Click = new Command(async (obj) => await this.EfetuarCadastro());
     this.btnVoltar_Click = new Command(async () => await this.Voltar());
     this.Usuario = new Usuario();
     this.service = service;
 }
        /*
                    var _sexo = sexoPicker.SelectedIndex;
                    var _nascimento = nascimentoPicker.Date;
                    var _email = entEmail.Text;
                    var _nome = entNome.Text;
                    var _ddd = entDDD.Text;
                    var _tel = entTelefone.Text;
                    var _municipio = entMunicipio.Text;
        */

        public async Task EfetuarCadastro(int? sexo, DateTime? nascimento, string email, string nome, string ddd, string tel, string municipio, string senha)
        {
            Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Enviando...");

            if (this.Usuario.Categorias == null || !this.Usuario.Categorias.Any())
            {
                Acr.UserDialogs.UserDialogs.Instance.HideLoading();

                await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Selecione ao menos uma categoria, clique no botão 'Categorias de Interesse'");
                return;
            }
            else
            {
                try
                {
                    var db = new Repositorio<Usuario>();
                    Usuario usuario = new Usuario();

                    if (this.Usuario.Categorias == null || !this.Usuario.Categorias.Any())
                    {
                        Acr.UserDialogs.UserDialogs.Instance.HideLoading();
                        await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Selecione ao menos uma categoria, clique no botão 'Selecionar Categoria'");
                        return;
                    }

                    var categorias = string.Empty;
                    foreach (var categoria in this.Usuario.Categorias)
                    {
                        categorias += categoria.Id.ToString() + ';';
                    }
                    categorias = categorias.TrimEnd(';');

                    usuario.CategoriaMobileSelection = categorias;

                    var dbFacebook = new Repositorio<FacebookInfos>();
                    var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault();

                    if (_token != null)
                    {
                        usuario.FacebookID = _token.user_id;
                        usuario.FacebookToken = _token.access_token;
                    }

                    usuario.EmpresaApp = 1;
                    usuario.Nome = nome;
                    usuario.DataNascimento = nascimento;
                    usuario.DDD = ddd;
                    usuario.Telefone = tel;
                    usuario.Email = email;
                    usuario.Municipio = municipio;
                    usuario.Senha = senha;
                    //usuario.Categorias = this.Usuario.Categorias;

                    if (sexo == 1)
                        usuario.Sexo = EnumSexo.Masculino;
                    else
                        usuario.Sexo = EnumSexo.Feminino;

                    var cadastrou = await this.service.CadastraNovoUsuario(usuario);

                    try
                    {
                        if (cadastrou != null)
                        {
                            this.Logar = new Action(async () =>
                                {
                                    Acr.UserDialogs.UserDialogs.Instance.HideLoading();

                                    var autenticado = await this.service.FazerLogin(cadastrou.Email, cadastrou.Senha);

                                    if (autenticado)
                                    {
                                        var dbUsuario = new Repositorio<Usuario>();

                                        var temUsuario = (await dbUsuario.RetornarTodos()).FirstOrDefault();
                                        if (temUsuario != null)
                                            await dbUsuario.Inserir(cadastrou);

                                        var dbSession = new Repositorio<ControleSession>();
                                        await dbSession.Inserir(new ControleSession { Logado = true });

                                        if (temUsuario != null)
                                            await this.Navigation.PushModalAsync(new MainPage());
                                        else
                                            await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Erro na gravação do usuário");
                                    }
                                    else
                                        Acr.UserDialogs.UserDialogs.Instance.Alert("Dados incorretos!", "Erro", "OK");
                                });

                            await db.Inserir(cadastrou);
                            foreach (var categoria in cadastrou.CategoriaMobileSelection.Split(';'))
                            {
                                var dbUsuarioCategoria = new Repositorio<UsuarioCategoria>();

                                await dbUsuarioCategoria.Inserir(new UsuarioCategoria{ CategoriaId = Convert.ToInt32(categoria) });
                            }

                            Acr.UserDialogs.UserDialogs.Instance.HideLoading();
                            this.Logar.Invoke();
                        }
                        else
                        {
                            Acr.UserDialogs.UserDialogs.Instance.HideLoading();

                            await Acr.UserDialogs
                                .UserDialogs
                                .Instance
                                .AlertAsync(AppResources.MsgErroCadastroUsuario, AppResources.TituloErro, "OK");
                        }
                    }
                    catch (NullReferenceException)
                    {
                        Acr.UserDialogs.UserDialogs.Instance.HideLoading();

                        await Acr.UserDialogs
                            .UserDialogs
                            .Instance
                            .AlertAsync(AppResources.MsgErroCadastroUsuarioCamposEmBranco, AppResources.TituloErro, "OK");
                    }
                }
                catch (Exception ex)
                {
                    Insights.Report(ex);
                }
            }
        }