コード例 #1
0
        private bool TryOpenConnection(string fileName, string pwd)
        {
            _db = new CredManagerDb(fileName, pwd);
            bool result = _db.TryOpenConnection(out string errorMessage);

            if (!result)
            {
                MessageBox.Show(errorMessage);
            }
            return(result);
        }
コード例 #2
0
 private void InitEntryAutoComplete(CredManagerDb db)
 {
     using (var cn = db.GetConnection())
     {
         var items        = cn.Query <string>("SELECT [Name] FROM [Entry] WHERE [IsActive]=1 ORDER BY [Name]").ToArray();
         var autoComplete = new AutoCompleteStringCollection();
         autoComplete.AddRange(items);
         tbSearchEntryName.AutoCompleteMode         = AutoCompleteMode.SuggestAppend;
         tbSearchEntryName.AutoCompleteCustomSource = autoComplete;
         tbSearchEntryName.AutoCompleteSource       = AutoCompleteSource.CustomSource;
     }
 }
コード例 #3
0
 private async void OpenToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         await PromptOpenDatabaseAsync(async (db) =>
         {
             Database = db;
             _settings.DatabaseFile = db.Filename;
             _settings.Save();
             await BindDataGridAsync();
         });
     }
     catch (Exception exc)
     {
         MessageBox.Show(exc.Message);
     }
 }
コード例 #4
0
        private async void FrmMain_Load(object sender, EventArgs e)
        {
            try
            {
                _settings = JsonSettingsBase.Load <Settings>();
                if (_settings.Recent == null)
                {
                    _settings.Recent = new HashSet <string>();
                }
                _settings.FormPosition?.Apply(this);

                FillRecentItems();

                cbFilterActive.Fill(new Dictionary <bool, string>()
                {
                    { true, "Active" },
                    { false, "Inactive" }
                });
                cbFilterActive.SetValue(true);

                if (File.Exists(_settings.DatabaseFile))
                {
                    Database = PromptOpenDatabasePwd(_settings.DatabaseFile, out bool getSinglePwd, out string entryName);

                    if (getSinglePwd)
                    {
                        CopyPasswordToClipboard(entryName);
                        Application.Exit();
                        return;
                    }
                }
                else
                {
                    Database = PromptCreateDatabase();
                }

                await BindDataGridAsync();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
コード例 #5
0
        private CredManagerDb PromptCreateDatabase()
        {
            string databaseFile;
            string pwd;
            string hint;

            if (frmCreateDb.Prompt(out databaseFile, out pwd, out hint))
            {
                var db = new CredManagerDb(databaseFile, pwd);
                using (var cn = db.GetConnection())
                {
                    _settings.DatabaseFile = databaseFile;
                    _settings.PasswordHint = hint;
                    _settings.Save();
                }
                return(db);
            }

            return(null);
        }
コード例 #6
0
        private void chkGetOnePwd_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (chkGetOnePwd.Checked && File.Exists(Filename))
                {
                    var db       = new CredManagerDb(Filename, tbPassword.Text);
                    var validPwd = db.TryOpenConnection(out _);

                    if (validPwd)
                    {
                        InitEntryAutoComplete(db);
                    }

                    btnOK.Enabled = validPwd;
                }

                tbSearchEntryName.Enabled = chkGetOnePwd.Checked;
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
コード例 #7
0
 private void NewToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Database = PromptCreateDatabase();
 }