Пример #1
0
        private static async Task LoadSession()
        {
            var encryptedStream = IOProxy.GetMemoryStreamFromFile(".session");

            byte[] array = new byte[1];
            try
            {
                array = await Authentification.Cryptography.DecryptMemoryStreamAsync(encryptedStream,
                                                                                     Authentification.AppPassword.Password, Authentification.AppPassword.Salt);
            }
            catch (System.Security.SecurityException)
            {
                await NewTab();

                return;
            }
            MemoryStream ms = new MemoryStream();
            await ms.WriteAsync(array, 0, array.Length);

            ms.Position = 0;
            BinaryFormatter     formatter       = new BinaryFormatter();
            List <SessionEntry> lastSessionTabs = (List <SessionEntry>)formatter.Deserialize(ms);

            if (lastSessionTabs.Count == 0)
            {
                await NewTab();

                return;
            }
            var plugins = PluginEntryCollection.Plugins;

            foreach (var entry in lastSessionTabs.ToArray())
            {
                if ((!IsSystemTab(entry.Name)) && !plugins.ContainsKey(entry.Name))
                {
                    lastSessionTabs.Remove(lastSessionTabs.Where(w => w.Equals(entry)).FirstOrDefault());
                }
            }
            Task[] loadTasks = new Task[lastSessionTabs.Count];
            for (int index = 0; index < lastSessionTabs.Count; index++)
            {
                ClosableTab tab = new ClosableTab();
                tab.PluginTabClose += CloseTab;
                MainWindowViewModel.tabs.Add(tab);
            }
            for (int ind = 0; ind < MainWindowViewModel.tabs.Count; ind++)
            {
                if (IsSystemTab(lastSessionTabs[ind].Name))
                {
                    loadTasks[ind] = LoadSystemTab(lastSessionTabs[ind], MainWindowViewModel.tabs[ind]);
                }
                else
                {
                    loadTasks[ind] = UpdateTabContent(plugins[lastSessionTabs[ind].Name], MainWindowViewModel.tabs[ind], lastSessionTabs[ind]);
                }
            }
            await Task.WhenAll(loadTasks);
        }
Пример #2
0
        public void GetPasswordFromFile(string filename)
        {
            MemoryStream      ms        = IOProxy.GetMemoryStreamFromFile(filename);
            EncryptedPassword ps        = new EncryptedPassword();
            BinaryFormatter   formatter = new BinaryFormatter();

            ps   = (EncryptedPassword)formatter.Deserialize(ms);
            Hash = ps.Hash;
            Salt = ps.Salt;
        }
Пример #3
0
        public static void LoadSettings()
        {
            paramters = new Parameters();
            if (IOProxy.Exists(".config"))
            {
                paramters.Deserialize(IOProxy.GetMemoryStreamFromFile(".config"));
            }

            if (string.IsNullOrEmpty(CurrentColorScheme))
            {
                CurrentColorScheme = _colorSchemeDict.First().Key;
            }
            else
            {
                UpdateUIColorScheme();
            }
        }