mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 23:50:18 -04:00
Moved application code to the Application layer
Imported Win10 project Code cleanup WIP - Use common UWP services for Win8.1 and Win10
This commit is contained in:
71
ModernKeePass10/ViewModels/EntriesViewModel.cs
Normal file
71
ModernKeePass10/ViewModels/EntriesViewModel.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.Specialized;
|
||||
using Autofac;
|
||||
using ModernKeePass.Domain.AOP;
|
||||
using ModernKeePass.Domain.Entities;
|
||||
using ModernKeePass.Domain.Interfaces;
|
||||
using ModernKeePass.ViewModels.ListItems;
|
||||
|
||||
namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class EntriesViewModel : NotifyPropertyChangedBase
|
||||
{
|
||||
private readonly IDatabaseService _databaseService;
|
||||
private readonly GroupItemViewModel _parentGroupViewModel;
|
||||
//private Entry _reorderedEntry;
|
||||
private EntryItemViewModel _selectedEntry;
|
||||
|
||||
public ObservableCollection<EntryItemViewModel> Entries { get; set; }
|
||||
|
||||
public EntryItemViewModel SelectedEntry
|
||||
{
|
||||
get => _selectedEntry;
|
||||
set
|
||||
{
|
||||
_selectedEntry = value;
|
||||
OnPropertyChanged(nameof(SelectedEntry));
|
||||
}
|
||||
}
|
||||
|
||||
public EntriesViewModel(GroupItemViewModel parentGroup): this(App.Container.Resolve<IDatabaseService>(), parentGroup)
|
||||
{ }
|
||||
|
||||
public EntriesViewModel(IDatabaseService databaseService, GroupItemViewModel parentParentGroupViewModel)
|
||||
{
|
||||
_databaseService = databaseService;
|
||||
_parentGroupViewModel = parentParentGroupViewModel;
|
||||
Entries = new ObservableCollection<EntryItemViewModel>();
|
||||
foreach (var entry in parentParentGroupViewModel.Entries)
|
||||
{
|
||||
Entries.Add(entry);
|
||||
}
|
||||
Entries.CollectionChanged += EntriesOnCollectionChanged;
|
||||
}
|
||||
|
||||
private void EntriesOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
// TODO: rewrite this (with service)
|
||||
switch (e.Action)
|
||||
{
|
||||
case NotifyCollectionChangedAction.Remove:
|
||||
/*var oldIndex = (uint)e.OldStartingIndex;
|
||||
_reorderedEntry = _group.Group.Entries.GetAt(oldIndex);
|
||||
_group.Group.Entries.RemoveAt(oldIndex);*/
|
||||
_databaseService.DeleteEntity((Entity)e.OldItems[0]);
|
||||
break;
|
||||
case NotifyCollectionChangedAction.Add:
|
||||
/*if (_reorderedEntry == null) _group.Group.AddEntry(((EntryItemViewModel)e.NewItems[0]).Entry, true);
|
||||
else _group.Group.Entries.Insert((uint)e.NewStartingIndex, _reorderedEntry);*/
|
||||
_databaseService.AddEntity(_parentGroupViewModel.GroupEntity, (Entity)e.NewItems[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddNewEntry(string text)
|
||||
{
|
||||
var entry = new EntryItemViewModel(new EntryEntity(), _parentGroupViewModel) {Name = text};
|
||||
Entries.Add(entry);
|
||||
SelectedEntry = entry;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user