Esempio n. 1
0
        public override async void Dispose()
        {
            SSHConnectionInfos.Dispose();
            Connections.Dispose();
            DbContext?.Dispose();
            await PortNumberCache.Save();

            base.Dispose();
        }
Esempio n. 2
0
        public async Task UpdateSSHFingerPrint(SSHConnectionInfo info, string fingerprint)
        {
            var record = await SSHConnectionInfos.FirstOrDefaultAsync(x => x.Id == info.Id);

            if (record != null)
            {
                record.ExpectedFingerPrint = fingerprint;
                await SaveChangesAsync();
            }
        }
Esempio n. 3
0
        public async Task <IEnumerable <ConnectionInfoBase> > EnumerateAllConnectionInfos()
        {
            var connections1 = await RDPConnectionInfos.ToListAsync();

            var connections2 = await SSHConnectionInfos.ToListAsync();

            return(connections1
                   .Cast <ConnectionInfoBase>()
                   .Union(connections2));
        }
Esempio n. 4
0
        public async Task SavePassword(SSHConnectionInfo info, bool savePassword, string password)
        {
            var record = await SSHConnectionInfos.FirstOrDefaultAsync(x => x.Id == info.Id);

            if (record != null)
            {
                record.SavePassword = savePassword;
                record.RawPassword  = savePassword ? password : null;
                await SaveChangesAsync();
            }
        }
Esempio n. 5
0
        private void InitConnectionInvokeTimer()
        {
            ConnectionInvokeTimer.Interval = TimeSpan.FromMilliseconds(500);
            ConnectionInvokeTimer.Tick    += async(s, e) =>
            {
                var list = new List <(ConnectionType Type, int Id)>();
                while (ConnectionRequest.Singleton.Queue.Count > 0)
                {
                    list.Add(ConnectionRequest.Singleton.Queue.Dequeue());
                }
                foreach (var(type, id) in list)
                {
                    try
                    {
                        switch (type)
                        {
                        case ConnectionType.SSH:
                            await SSHConnectionInfos.ConnectById(id);

                            break;

                        case ConnectionType.RDP:
                            await RDPConnectionInfos.ConnectById(id);

                            break;

                        default:
                            break;
                        }
                    }
                    catch (KeyNotFoundException ex)
                    {
                        MyLogger.Log($"ID {id} is not found in {type} connections.", ex);
                    }
                }
            };
            ConnectionInvokeTimer.Start();
        }