Exemple #1
0
 /// <summary>
 /// Inicializar canal de nube
 /// </summary>
 /// <param name="access">Acceso</param>
 /// <param name="pusher">Instancia de Pusher</param>
 public CloudChannel(ServerUserAccess access, Channel pusherChannel)
 {
     _bindedAccess  = access;
     _pusherChannel = pusherChannel;
     _pusherChannel.Bind(access.UserIdentifier, (dynamic data) =>
     {
         OnMessage?.Invoke(this, (string)data);
     });
 }
Exemple #2
0
        /// <summary>
        /// Añadir canal en base a acceso
        /// </summary>
        /// <param name="access">Acceso</param>
        private void AddChannel(ServerUserAccess access)
        {
            if (m_channels.ContainsKey(access.UserIdentifier))
            {
                return;
            }

            CloudChannel channel = new CloudChannel(access, _pusherChannel);

            m_channels.Add(access.UserIdentifier, channel);
            OnChannelConnected?.Invoke(this, channel);
            Debug.WriteLine(this, "Canal por acceso añadido", VerbosityLevel.Debug);
        }
 /// <summary>
 /// Al recibir un mensaje por el canal
 /// </summary>
 /// <param name="sender">Emisor</param>
 /// <param name="e">Mensaje</param>
 private void Channel_OnMessage(object sender, string e)
 {
     if (Access == null)
     {
         Json.Parse <ServerUserAccess>(e, a =>
         {
             using (ServerUserAccessRepository repo = new ServerUserAccessRepository()) {
                 Database.Models.ServerUserAccess savedAccess = repo.GetAccess(a.UserIdentifier, a.Identifier);
                 if (savedAccess != null)
                 {
                     Access = a;
                     Debug.WriteLine(this, "Se autorizo a un usuario en el sistema", VerbosityLevel.Debug);
                 }
                 else
                 {
                     Debug.WriteLine(this, "No se pudo autorizar a un usuario en el sistema", VerbosityLevel.Debug);
                 }
             }
         });
     }
     Json.Parse <DeviceUpdate>(e, (u) =>
     {
         OnRequestsUpdate?.Invoke(this, u);
     });
     Json.Parse <DeviceConfiguration>(e, (c) =>
     {
         OnConfigureDevice?.Invoke(this, c);
     });
     Json.Parse <DeviceTranslation>(e, (t) =>
     {
         OnTranslateDevice?.Invoke(this, t);
     });
     Json.Parse <UserDataRequest>(e, (r) =>
     {
         OnDataRequest?.Invoke(this, r);
     });
 }
        /// <summary>
        /// Guardar accesos nuevos en formato de API
        /// </summary>
        /// <param name="accesses">Accesos</param>
        public void SaveAccesses(IEnumerable <ApiServerUserAccess> accesses)
        {
            var dbAccesses = accesses.Select(a => ServerUserAccess.FromApiModel(a));

            SaveAccesses(dbAccesses);
        }
 /// <summary>
 /// Guardar acceso en base de datos
 /// </summary>
 /// <param name="access"></param>
 public void SaveAccess(ServerUserAccess access)
 {
     m_context.Add(access);
     m_context.SaveChanges();
 }