示例#1
0
 public DatabaseApplication(IDatabaseRepository databaseRepository, IDatabaseDomainService databaseDomainService, IDatabaseCache databaseCache, IOperateLogDomainService operateLogDomainService)
 {
     _databaseRepository      = databaseRepository;
     _databaseDomainService   = databaseDomainService;
     _databaseCache           = databaseCache;
     _operateLogDomainService = operateLogDomainService;
 }
示例#2
0
        public DatabasePageViewModel(
            INavigator navigator,
            IDatabaseCache unlocker,
            IClipboard <string> clipboard,
            ICredentialProvider credentialProvider,
            INameProvider nameProvider,
            ILauncher launcher,
            IMessageDialogFactory dialogs,
            ILogger log)
        {
            _clipboard          = clipboard;
            _unlocker           = unlocker;
            _navigator          = navigator;
            _credentialProvider = credentialProvider;
            _nameProvider       = nameProvider;
            _launcher           = launcher;
            _dialogs            = dialogs;
            _log = log;

            ItemClickCommand = new DelegateCommand <IKeePassId>(item => GroupClicked(item as IKeePassGroup), item => (item as IKeePassGroup) != null);

            GoToParentCommand = new DelegateCommand <IKeePassGroup>(group =>
            {
                if (_database != null)
                {
                    _navigator.GoToDatabaseView(_database, group);
                }
            });

            CopyCommand = new DelegateCommand <string>(text => _clipboard.Copy(text));

            OpenUrlCommand = new DelegateCommand <IKeePassEntry>(async entry =>
            {
                if (Uri.TryCreate(entry.Url, UriKind.Absolute, out Uri uri))
                {
                    await _launcher.LaunchUriAsync(uri);
                }
            });

            AddEntryCommand = new DelegateCommand(async() =>
            {
                var name = await _nameProvider.GetNameAsync();

                if (!string.IsNullOrEmpty(name))
                {
                    Items.Add(_group.CreateEntry(name));
                }

                NotifyAllCommands();

#if FEATURE_SAVE
                // This is disabled currently due to twsouthwick/KeePassWin 15
            }, () => !_saving);
#else
            }, () => !_activeSearch);
示例#3
0
        public LongRunningCache(ICache updatingCache, IDatabaseCache longTermCache, TimeSpan expiresAfter, TimeSpan?refreshAfter = null)
        {
            this.updatingCache = updatingCache;
            this.longTermCache = longTermCache;

            if (expiresAfter < refreshAfter)
            {
                throw new ArgumentException("Refreshes must occur before expiration!");
            }

            this.expiresAfter = expiresAfter;
            this.refreshAfter = refreshAfter;
        }
示例#4
0
        public PasswordDialogViewModel(IFile db, IDatabaseCache cache, IDatabaseFileAccess tracker)
        {
            Name = db.Name;

            AddKeyFileCommand = new DelegateCommand(async() =>
            {
                KeyFile = await cache.AddKeyFileAsync(db);
            });

            tracker.GetKeyFileAsync(db).ContinueWith((r, o) =>
            {
                KeyFile = r.Result;
            }, SynchContext);
        }
示例#5
0
 public GuildStatsRetriever(
     ICache memoryCache,
     IDatabaseCache databaseCache,
     IBackgroundTaskQueue taskQueue,
     IMailSender mailSender,
     ICommonValuesProvider commonValues,
     IMailGenerator mailGenerator)
 {
     this.longRunningCache = new LongRunningCache <IEnumerable <GuildMemberStats> >(memoryCache, databaseCache, TimeSpan.FromDays(3), TimeSpan.FromDays(1));
     this.taskQueue        = taskQueue;
     this.mailSender       = mailSender;
     this.commonValues     = commonValues;
     this.mailGenerator    = mailGenerator;
 }
示例#6
0
        public MenuViewModel(INavigator navigator, IDatabaseCache cache, ICredentialProvider credentialProvider, IMessageDialogFactory messageDialogs, IFilePicker filePicker)
        {
            _navigator          = navigator;
            _cache              = cache;
            _credentialProvider = credentialProvider;
            _messageDialogs     = messageDialogs;

            Databases       = new ObservableCollection <MenuItemViewModel>();
            SettingsCommand = new DelegateCommand(() => _navigator.GoToSettings());
            OpenCommand     = new DelegateCommand(async() => await _cache.AddDatabaseAsync(filePicker, false));

            _subscription = cache.Databases
                            .ObserveOn(SynchContext)
                            .Subscribe(action =>
            {
                switch (action.action)
                {
                case DatabaseAction.Add:
                    AddDatabaseEntry(action.file);
                    break;

                case DatabaseAction.Open:
                    var entry = AddDatabaseEntry(action.file);
                    entry.Command.Execute(null);
                    break;

                case DatabaseAction.Remove:
                    RemoveDatabaseEntry(action.file);
                    break;
                }
            });

            _cache.GetDatabaseFilesAsync().ContinueWith(r =>
            {
                if (r.IsFaulted)
                {
                    return;
                }

                foreach (var item in r.Result)
                {
                    AddDatabaseEntry(item);
                }
            });
        }
示例#7
0
        public MenuViewModel(INavigator navigator, IDatabaseCache cache, ICredentialProvider credentialProvider, IMessageDialogFactory messageDialogs)
        {
            _navigator          = navigator;
            _cache              = cache;
            _credentialProvider = credentialProvider;
            _messageDialogs     = messageDialogs;

            Databases       = new ObservableCollection <MenuItemViewModel>();
            SettingsCommand = new DelegateCommand(() => _navigator.GoToSettings());
            OpenCommand     = new DelegateCommand(async() =>
            {
                try
                {
                    var db = await _cache.AddDatabaseAsync();

                    if (db != null)
                    {
                        AddDatabaseEntry(db);
                    }
                }
                catch (DatabaseAlreadyExistsException)
                {
                    await _messageDialogs.DatabaseAlreadyExistsAsync();
                }
            });

            _cache.GetDatabaseFilesAsync().ContinueWith(r =>
            {
                if (r.IsFaulted)
                {
                    return;
                }

                foreach (var item in r.Result)
                {
                    AddDatabaseEntry(item);
                }
            });
        }
示例#8
0
 public GuildMemberCache(IGuildService guildService, IMemoryCache memoryCache, IDatabaseCache dbCache, IKeyedResourceManager resourceManager)
 {
     this.cache        = new DbMemCachedResource <IEnumerable <BlizzardPlayer> >(TimeSpan.FromDays(1.0), dbCache, memoryCache, resourceManager);
     this.guildService = guildService;
 }
示例#9
0
 public GuildCache(IGuildService guildService, IMemoryCache memoryCache, IDatabaseCache dbCache, IKeyedResourceManager resourceManager)
 {
     this.cache        = new DbMemCachedResource <GuildSlim>(TimeSpan.FromDays(1.0), dbCache, memoryCache, resourceManager);
     this.guildService = guildService;
 }
示例#10
0
 public SimpleDatabaseCache(IDatabaseCache cache, INavigator navigator)
 {
     _cache     = cache;
     _navigator = navigator;
 }
示例#11
0
 public PostController(ForumDbContext forumDbContext, IDatabaseCache databaseCache)
 {
     _forumDbContext = forumDbContext;
     _databaseCache  = databaseCache;
 }
 public DatabaseCacheWithMemoryCache(TimeSpan expiresAfter, IDatabaseCache databaseCache, IMemoryCache memoryCache)
 {
     this.memoryCache = memoryCache;
     this.dbCache     = databaseCache;
 }
示例#13
0
 public DbMemCachedResource(TimeSpan expiresAfter, IDatabaseCache databaseCache, IMemoryCache memoryCache, IKeyedResourceManager resourceManager)
 {
     this.expiresAfter    = expiresAfter;
     this.cache           = new DatabaseCacheWithMemoryCache(expiresAfter, databaseCache, memoryCache);
     this.resourceManager = resourceManager;
 }
示例#14
0
 public DatabaseDomainService(IDatabaseRepository databaseRepository, IDatabaseCache databaseCache)
 {
     _databaseRepository = databaseRepository;
     _databaseCache      = databaseCache;
 }
示例#15
0
 public RealmsCache(IBlizzardService blizzardService, IMemoryCache memoryCache, IDatabaseCache dbCache, IKeyedResourceManager resourceManager)
 {
     this.cache           = new DbMemCachedResource <IEnumerable <Realm> >(TimeSpan.FromDays(1.0), dbCache, memoryCache, resourceManager);
     this.blizzardService = blizzardService;
 }