private void btnSave_Click(object sender, EventArgs e)
        {
            var entryData = new DatabaseEntryData
            {
                Name     = lblTitle.Text.Trim(),
                Url      = txtUrl.Text.Trim(),
                Username = txtUsername.Text.Trim(),
                Password = _txtPassword.Text,
                Notes    = txtNotes.Text
            };

            if (_newPassword)
            {
                entryData.PasswordShared = false;
            }

            if (_editEntry)
            {
                var success = _databaseView.UpdateEntry(_entryId, entryData);
                if (!success)
                {
                    return;
                }

                var newButton = new Templates.ButtonDisabled
                {
                    Text  = @"Save",
                    Dock  = DockStyle.Right,
                    Width = _btnControl.Width
                };
                panelSaveBtn.Controls.Remove(_btnControl);
                panelSaveBtn.Controls.Add(newButton);
                _btnControl = newButton;
            }
            else
            {
                var newEntryId = _databaseView.NewEntry(entryData, _groupId);
                if (newEntryId == null)
                {
                    return;
                }

                _entryId   = newEntryId.Value;
                _editEntry = true;

                var newButton = new Templates.ButtonDisabled
                {
                    Text  = @"Save",
                    Dock  = DockStyle.Right,
                    Width = _btnControl.Width
                };
                panelSaveBtn.Controls.Remove(_btnControl);
                panelSaveBtn.Controls.Add(newButton);
                _btnControl = newButton;

                _databaseView.UpdateControl(newEntryId.Value);
            }

            tablePasswordContainer.Controls.Remove(_txtPassword);
            tablePasswordContainer.Controls.Add(_lblPasswordShared);
            lblDelete.Visible = true;
            _newPassword      = false;
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            var entryData = new DatabaseEntryData
            {
                Name = lblTitle.Text.Trim(),
                Url = txtUrl.Text.Trim(),
                Username = txtUsername.Text.Trim(),
                Password = _txtPassword.Text,
                Notes = txtNotes.Text
            };

            if (_newPassword)
                entryData.PasswordShared = false;

            if (_editEntry)
            {
                var success = _databaseView.UpdateEntry(_entryId, entryData);
                if (!success)
                    return;

                var newButton = new Templates.ButtonDisabled
                {
                    Text = @"Save",
                    Dock = DockStyle.Right,
                    Width = _btnControl.Width
                };
                panelSaveBtn.Controls.Remove(_btnControl);
                panelSaveBtn.Controls.Add(newButton);
                _btnControl = newButton;
            }
            else
            {
                var newEntryId = _databaseView.NewEntry(entryData, _groupId);
                if (newEntryId == null)
                    return;

                _entryId = newEntryId.Value;
                _editEntry = true;

                var newButton = new Templates.ButtonDisabled
                {
                    Text = @"Save",
                    Dock = DockStyle.Right,
                    Width = _btnControl.Width
                };
                panelSaveBtn.Controls.Remove(_btnControl);
                panelSaveBtn.Controls.Add(newButton);
                _btnControl = newButton;

                _databaseView.UpdateControl(newEntryId.Value);
            }

            tablePasswordContainer.Controls.Remove(_txtPassword);
            tablePasswordContainer.Controls.Add(_lblPasswordShared);
            lblDelete.Visible = true;
            _newPassword = false;
        }
        public int? NewEntry(DatabaseEntryData entryData, int groupId)
        {
            if (groupId == 0)
            {
                if (Program.AppEnvDebug)
                    throw new Exception("Group ID cannot be empty");
                return null;
            }
            if (entryData.GetModifiedProperties().Count == 0)
            {
                MessageBox.Show(@"There is no entry information to save");
                return null;
            }

            var group = Model.DatabasesGroups.Get(groupId);

            var entryDataId = Model.DatabasesEntriesData.Create(entryData);
            var newEntryIdentifier = Guid.NewGuid().ToString();
            var entryId = Model.DatabasesEntries.Create(new DatabaseEntry
            {
                DatabaseId = group.DatabaseId,
                DatabaseGroupId = groupId,
                Identifier = newEntryIdentifier,
                DatabaseEntryDataId = entryDataId
            });
            SetEntryAsModified(entryId);

            return entryId;
        }
        public bool UpdateEntry(int entryId, DatabaseEntryData entryData)
        {
            if (entryId == 0)
            {
                if (Program.AppEnvDebug)
                    throw new Exception("Entry ID cannot be empty");
                return false;
            }

            if (entryData.GetModifiedProperties().Count == 0)
                return false;

            var entry = Model.DatabasesEntries.Get(entryId);
            Model.DatabasesEntriesData.Update(entry.DatabaseEntryDataId, entryData);

            SetEntryAsModified(entryId);

            return true;
        }
        private bool ImportDashlane(Stream inputStream)
        {
            var websitesGroupId = CreateDatabaseGroup(_activeDatabaseId, "Websites");

            using (var parser = new TextFieldParser(inputStream))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                var header = true;
                while (!parser.EndOfData)
                {
                    var fields = parser.ReadFields();
                    
                    if (fields == null)
                        continue;

                    // No header for dashlane

                    var newEntryData = new DatabaseEntryData
                    {
                        Name = !string.IsNullOrEmpty(fields[0]) ? fields[0] : fields[1],
                        Url = fields[1],
                        Username = fields[2]
                    };

                    if (fields.Length == 5)
                    {
                        newEntryData.Password = fields[3];
                        newEntryData.Notes = fields[4];
                    }
                    else if (fields.Length == 6)
                    {
                        // Slow clap for Dashlane...
                        // If the entry contains a secondary login field, the column layout changes.
                        newEntryData.Password = fields[4];
                        newEntryData.Notes = fields[5];
                        if (!string.IsNullOrEmpty(fields[3]))
                            newEntryData.Notes = "Secondary login: "******"\r\n\r\n" + newEntryData.Notes;
                    }
                    else
                    {
                        // F**k knows, they've cocked up the CSV format as it is.
                        continue;
                    }
                    
                    var newEntryDataId = Model.DatabasesEntriesData.Create(newEntryData);
                    
                    var newEntryIdentifier = Guid.NewGuid().ToString();
                    var newEntryId = Model.DatabasesEntries.Create(new DatabaseEntry
                    {
                        Identifier = newEntryIdentifier,
                        DatabaseId = _activeDatabaseId,
                        DatabaseGroupId = websitesGroupId,
                        DatabaseEntryDataId = newEntryDataId
                    });

                    SetEntryAsModified(newEntryId, false);
                }
            }

            return true;
        }
 public bool UpdateEntry(int entryId, DatabaseEntryData entryData)
 {
     return _controller.UpdateEntry(entryId, entryData);
 }
 public int? NewEntry(DatabaseEntryData entryData, int groupId)
 {
     return _controller.NewEntry(entryData, groupId);
 }
Exemple #8
0
 public bool UpdateEntry(int entryId, DatabaseEntryData entryData)
 {
     return(_controller.UpdateEntry(entryId, entryData));
 }
Exemple #9
0
 public int?NewEntry(DatabaseEntryData entryData, int groupId)
 {
     return(_controller.NewEntry(entryData, groupId));
 }