示例#1
0
        private void Reset_Click(object sender, EventArgs e)
        {
            const string msg = "Vous êtes sur le point d’envoyer une demande de réinitialisation " +
                               "au client sélectionné, celle-ci forcera ce dernier à s’enregistrer une nouvelle " +
                               "fois sous un autre ID. Voulez-vous poursuivre ?";

            if (MessageBox.Show(msg, Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
            {
                return;
            }

            TreeNode selNode = m_tvClients.SelectedNode;

            Dbg.Assert(selNode != null && selNode.Parent != null);

            var client = selNode.Tag as HubClient;

            AppContext.LogManager.LogUserActivity($"Action utilisateur :  Réinitialisation du client {ClientsManager.ClientStrID(client.ID)}");


            AppContext.LogManager.LogSysActivity("Envoi d'une notification de réinitialisation au client " +
                                                 $"{ClientsManager.ClientStrID(client.ID)}", true);

            AppContext.ClientsManager.SetClientStatus(client, ClientStatus_t.Reseted);
        }
示例#2
0
        public void DeleteClient(uint clID)
        {
            //remove client from running clients queue if present
            using (m_onlineClients.Lock())
                if (m_onlineClients.Contains(clID))
                {
                    m_onlineClients.Remove(clID);
                    ClientClosed?.Invoke(clID);
                    AppContext.LogManager.CloseLogger(clID);
                }

            // delete: env
            uint[] ids = (from HubClientEnvironment env in m_ndxerClientsEnv.Source.Enumerate()
                          where env.ClientID == clID
                          select env.ID).ToArray();

            for (int i = ids.Length - 1; i >= 0; --i)
            {
                int ndx = m_ndxerClientsEnv.IndexOf(ids[i]);
                m_ndxerClientsEnv.Source.Delete(ndx);
                AppContext.LogManager.LogSysActivity($"Environnement du client {ClientsManager.ClientStrID(clID)} supprimé");
            }


            //delete status
            int ndxStatus = m_ndxerClientsStatus.IndexOf(clID);

            if (ndxStatus >= 0)
            {
                m_ndxerClientsStatus.Source.Delete(ndxStatus);
                AppContext.LogManager.LogSysActivity($"Status du client {ClientsManager.ClientStrID(clID)} supprimé");
            }

            //delete client.
            int ndxClient = m_ndxerClients.IndexOf(clID);

            m_ndxerClients.Source.Delete(ndxClient);
            AppContext.LogManager.LogSysActivity($"Client {ClientsManager.ClientStrID(clID)} supprimé");
        }
示例#3
0
        private void DeleteClient_Click(object sender, EventArgs e)
        {
            TreeNode selNode = m_tvClients.SelectedNode;

            Dbg.Assert(selNode != null && selNode.Parent != null);
            var client   = selNode.Tag as HubClient;
            var clStatus = m_ndxerStatus.Get(client.ID) as ClientStatus;

            if (clStatus.Status != ClientStatus_t.Reseted)
            {
                const string msg = "Vous ne supprimer le client sélectionné, " +
                                   "seuls les clients réinitialisés peuvent être supprimés.";

                MessageBox.Show(msg, Text, MessageBoxButtons.OK);
                return;
            }

            var waitDlg = new Jobs.ProcessingDialog();

            Action <Task> onErr = t =>
            {
                AppContext.LogManager.LogSysError($"Erreur lors de la suppression du client {ClientsManager.ClientStrID(client.ID)}:" +
                                                  t.Exception.InnerException.Message, true);

                waitDlg.Close();
            };

            Action onSuccess = () =>
            {
                AppContext.LogManager.LogSysActivity($"Action utilisateur: Suppression du client {ClientsManager.ClientStrID(client.ID)}", true);
                waitDlg.Close();
            };

            var task = new Task(() => AppContext.ClientsManager.DeleteClient(client.ID), TaskCreationOptions.LongRunning);

            task.OnSuccess(onSuccess);
            task.OnError(onErr);
            task.Start();
            waitDlg.ShowDialog(this);
        }
示例#4
0
        void ProcessClientStatus(ClientStatus_t status)
        {
            Dbg.Assert(!InvokeRequired);

            var client = m_tvClients.SelectedNode.Tag as HubClient;
            ManagementMode_t prfMgmnt = AppContext.ClientsManager.GetProfileManagementMode(client.ProfileID);
            var prf = m_ndxerProfiles.Get(client.ProfileID) as UserProfile;

            if (prfMgmnt == ManagementMode_t.Auto)
            {
                if (MessageBox.Show(this,
                                    $"La gestion du profil {prf.Name} sera changée en mode 'manuel'. Poursuivre ?",
                                    Text, MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }
            }

            AppContext.LogManager.LogUserActivity($"Action utilisateur:  Changement du statut du client {ClientsManager.ClientStrID(client.ID)} en {ClientStatuses.GetStatusName(status)}");

            AppContext.ClientsManager.SetProfileManagementMode(client.ProfileID, ManagementMode_t.Manual);

            //maj le status
            AppContext.ClientsManager.SetClientStatus(client, status);
        }