2020-04-28 15:20:47 +02:00
|
|
|
|
using System.Collections.Generic;
|
2020-05-04 20:56:19 +02:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using GalaSoft.MvvmLight.Views;
|
2020-04-28 15:20:47 +02:00
|
|
|
|
using MediatR;
|
2020-05-04 20:56:19 +02:00
|
|
|
|
using ModernKeePass.Application.Database.Models;
|
2020-04-28 15:20:47 +02:00
|
|
|
|
using ModernKeePass.Application.Database.Queries.GetDatabase;
|
2020-05-04 20:56:19 +02:00
|
|
|
|
using ModernKeePass.Application.Entry.Models;
|
2020-04-28 15:20:47 +02:00
|
|
|
|
using ModernKeePass.Application.Group.Models;
|
|
|
|
|
using ModernKeePass.Application.Group.Queries.GetAllGroups;
|
2020-05-04 20:56:19 +02:00
|
|
|
|
using ModernKeePass.Application.Group.Queries.SearchEntries;
|
|
|
|
|
using ModernKeePass.Common;
|
|
|
|
|
using ModernKeePass.Models;
|
2020-04-28 15:20:47 +02:00
|
|
|
|
|
|
|
|
|
namespace ModernKeePass.ViewModels
|
|
|
|
|
{
|
|
|
|
|
public class TopMenuVm
|
|
|
|
|
{
|
2020-05-04 20:56:19 +02:00
|
|
|
|
private readonly IMediator _mediator;
|
|
|
|
|
private readonly INavigationService _navigation;
|
|
|
|
|
private readonly DatabaseVm _database;
|
2020-04-28 15:20:47 +02:00
|
|
|
|
public IEnumerable<GroupVm> Groups { get; set; }
|
|
|
|
|
|
2020-05-04 20:56:19 +02:00
|
|
|
|
public TopMenuVm(IMediator mediator, INavigationService navigation)
|
2020-04-28 15:20:47 +02:00
|
|
|
|
{
|
2020-05-04 20:56:19 +02:00
|
|
|
|
_mediator = mediator;
|
|
|
|
|
_navigation = navigation;
|
|
|
|
|
|
|
|
|
|
_database = _mediator.Send(new GetDatabaseQuery()).GetAwaiter().GetResult();
|
|
|
|
|
Groups = _mediator.Send(new GetAllGroupsQuery { GroupId = _database.RootGroupId }).GetAwaiter().GetResult();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void GoToEntry(string entryId, bool isNew = false)
|
|
|
|
|
{
|
|
|
|
|
_navigation.NavigateTo(Constants.Navigation.EntryPage, new NavigationItem
|
|
|
|
|
{
|
|
|
|
|
Id = entryId,
|
|
|
|
|
IsNew = isNew
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task<IEnumerable<EntryVm>> Search(string queryText)
|
|
|
|
|
{
|
|
|
|
|
return await _mediator.Send(new SearchEntriesQuery { GroupId = _database.RootGroupId, SearchText = queryText });
|
2020-04-28 15:20:47 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|