public async Task <Respuestas> VerificarSesion(string pathArchivo)
        {
            Respuestas respuesta = new Respuestas();

            try
            {
                contexto = Iniciar();
                TLContacts contactos = new TLContacts();
                info = CargarDeArchivo <Informacion_sesion>(pathArchivo);
                if (info == null)
                {
                    info = new Informacion_sesion();
                }
                TLUser usuario = new TLUser();
                await contexto.ConnectAsync();

                if (contexto.IsUserAuthorized())
                {
                    contactos = await contexto.GetContactsAsync();

                    List <Usuarios> lista = new List <Usuarios>();
                    foreach (var item in contactos.Users.OfType <TLUser>())
                    {
                        var contacto = new Usuarios
                        {
                            Nombre   = item.FirstName + item.LastName,
                            Telefono = "+" + item.Phone
                        };
                        lista.Add(contacto);
                    }
                    info.contactos    = lista.OrderBy(x => x.Nombre).ToList();
                    respuesta.STATUS  = true;
                    respuesta.MESSAGE = "Reconexion exitosa exitosa...";
                    respuesta.data    = info;
                }
                else
                {
                    respuesta.STATUS  = false;
                    respuesta.data    = info;
                    respuesta.MESSAGE = "Reconexion fallida, intente autenticar de nuevo...";
                }
                JObject objeto = JObject.Parse(File.ReadAllText(pathArchivo.Replace("Registros.txt", "Sesion.txt")));
                info.Expiracion.Add(DateTime.Now.AddMilliseconds(objeto.Value <double>("SessionExpires")).ToString("MM/dd/yy H:mm:ss"));
                GuardarArchivo(pathArchivo, info);
                return(respuesta);
            }
            catch (Exception e)
            {
                respuesta.MESSAGE = "No se pudo hacer la verificacion..." + ((string.IsNullOrEmpty(e.InnerException.Message)) ? e.Message : e.InnerException.Message);
                if (respuesta.MESSAGE.ToUpper().Contains("AUTH_KEY_UNREGISTERED"))
                {
                    respuesta.MESSAGE = "Debe Autenticarse solicitando su código";
                }
                respuesta.STATUS = false;
                return(respuesta);
            }
        }
        public async Task <Respuestas> AutenticarUsuario(string codigo, string filepath)
        {
            try
            {
                Respuestas respuesta = new Respuestas();
                contexto = Iniciar();
                TLContacts contactos = new TLContacts();
                info = CargarDeArchivo <Informacion_sesion>(filepath);
                info.Codigo_autenticacion = codigo;
                TLUser usuario = null;
                await contexto.ConnectAsync();

                if (contexto.IsConnected)
                {
                    usuario = await contexto.MakeAuthAsync(info.NumeroPropietario, info.Codigo_solicitud, info.Codigo_autenticacion);

                    if (usuario != null)
                    {
                        info.NombreUsuario = usuario.FirstName;
                        contactos          = await contexto.GetContactsAsync();

                        List <Usuarios> lista = new List <Usuarios>();
                        foreach (var item in contactos.Users.OfType <TLUser>())
                        {
                            var contacto = new Usuarios
                            {
                                Nombre   = item.FirstName + " " + item.LastName,
                                Telefono = "+" + item.Phone
                            };
                            lista.Add(contacto);
                        }
                        info.contactos = lista.OrderBy(x => x.Nombre).ToList();
                        JObject objeto = JObject.Parse(File.ReadAllText(filepath.Replace("Registros.txt", "Sesion.txt")));
                        info.Expiracion.Add(DateTime.Now.AddMilliseconds(objeto.Value <double>("SessionExpires")).ToString("MM/dd/yy H:mm:ss"));
                        GuardarArchivo(filepath, info);
                        respuesta.STATUS  = true;
                        respuesta.MESSAGE = "Autenticación exitosa...";
                        respuesta.data    = info;
                        return(respuesta);
                    }
                    else
                    {
                        respuesta.MESSAGE = "no se pudo obtener datos de usuario...";
                        respuesta.STATUS  = false;
                        return(respuesta);
                    }
                }
                else
                {
                    respuesta.MESSAGE = "ya se encuentra autenticado...";
                    respuesta.STATUS  = false;
                    contexto.Dispose();
                    return(respuesta);
                }
            }
            catch (Exception e)
            {
                return(new Respuestas()
                {
                    STATUS = false, MESSAGE = "No se pudo autenticar usuario" + e.InnerException.Message
                });
            }
        }
 public TelegramService()
 {
     info = new Informacion_sesion();
     GetConfiguration();
 }