// CTOR
 public LoginViewModel(INavigator navigator, IServicioDatos servicio, Session session, IPage page) : base(navigator, servicio, session, page)
 {
     Page = new Page();
     Usuario = new UsuarioModel();
     Usuario = new UsuarioModel();
     cmdLogin = new Command(IniciarSesion);
     cmdRegistro = new Command(NuevoUsuario);
 }
 // CTOR
 public LoginViewModel(INavigator navigator, IServicioDatos servicioDatos, Session session, IPage page, IComponentContext ctx) : base(navigator, servicioDatos, session, page)
 {
     Context = ctx;
     Usuario = new UsuarioModel();
     Usuario = new UsuarioModel();
     cmdLogin = new Command(IniciarSesion);
     cmdRegistro = new Command(NuevoUsuario);
 }
        public IHttpActionResult Post(UsuarioModel model)
        {
            var data = UsuarioRepositorio.Add(model);

            if (data == null)
                return BadRequest();

            return Ok(data);
        }
        public async void AgregarContacto(UsuarioModel model)
        {
            var cm = new ContactoModel
            {
                IdUsuario = Session.User.Id,
                IdAmigo = model.Id,
                Fecha = DateTime.Now
            };

            await _servicio.AddContacto(cm);
            await new Page().DisplayAlert(model.NombreCompleto, "Contacto agregado", "OK");

        }
        public async Task<UsuarioModel> AddUsuario(UsuarioModel model)
        {
            var request = new RestRequest("Usuario")
            {
                Method = Method.POST
            };
            request.AddJsonBody(model);
            var response = await _client.Execute<UsuarioModel>(request);

            if (response.IsSuccess)
                return response.Data;
            return null;
        }
        public IHttpActionResult Put(int id, UsuarioModel model)
        {
            var d = UsuarioRepositorio.Get(id);
            if (d == null || d.Id != model.Id)
                return NotFound();


            var data = UsuarioRepositorio.Update(model);

            if (data < 1)
                return BadRequest();

            return Ok();
        }
        public async Task<UsuarioModel> ValidarUsuario(UsuarioModel model)
        {
            var request = new RestRequest("Usuario") { Method = Method.GET };
            request.AddQueryParameter("username", model.Username);
            request.AddQueryParameter("password", model.Password);

            // la api devuelve error 404 si no existe, y restsharp peta
            var response = await _client.Execute<UsuarioModel>(request);
            if (response.IsSuccess)
                return response.Data;

            return null;

        }
 public DetalleUsuarioViewModel(INavigator navigator, IServicioDatos servicio, Session session, IPage page) : base(navigator, servicio, session, page)
 {
     _usuario = new UsuarioModel();
     CmdAgregar = new Command(AgregarContacto);
 }
 public LoginViewModel(IServicioDatos servicioDatos)
 {
     _servicioDatos = servicioDatos;
     CmdLogin = new MvxCommand(RunLogin);
     _usuario = new UsuarioModel();
 }
 // CTOR
 public RegistroViewModel(INavigator navigator, IServicioDatos servicio, Session session, IPage page) : base(navigator, servicio, session, page)
 {
     Page = new Page();
     Usuario = new UsuarioModel();
     cmdRegistro = new Command(GuardarUsuario);
 }