Ejemplo n.º 1
0
        public XmlCredentialRepository(ICredentialRepositoryConfig config,
                                       CredentialRecordSaver credentialRecordSaver,
                                       CredentialRecordLoader credentialRecordLoader)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }
            if (credentialRecordSaver == null)
            {
                throw new ArgumentNullException(nameof(credentialRecordSaver));
            }
            if (credentialRecordLoader == null)
            {
                throw new ArgumentNullException(nameof(credentialRecordLoader));
            }

            Config            = config;
            CredentialRecords = new FullyObservableCollection <ICredentialRecord>();
            ((FullyObservableCollection <ICredentialRecord>)CredentialRecords).CollectionUpdated +=
                RaiseCredentialsUpdatedEvent;
            Config.PropertyChanged += (sender, args) => RaiseRepositoryConfigUpdatedEvent(args);
            _credentialRecordSaver  = credentialRecordSaver;
            _credentialRecordLoader = credentialRecordLoader;
        }
        private ICredentialRepository BuildXmlRepo(ICredentialRepositoryConfig config)
        {
            var dataProvider = new FileDataProvider(config.Source);
            var saver        = new CredentialRecordSaver(dataProvider, _serializer);
            var loader       = new CredentialRecordLoader(dataProvider, _deserializer);

            return(new XmlCredentialRepository(config, saver, loader));
        }
 public ICredentialRepository Build(ICredentialRepositoryConfig config)
 {
     return(BuildXmlRepo(config));
 }