we can now save the cred repo list

This commit is contained in:
David Sparer
2017-02-11 12:50:44 -07:00
parent 1c2f6913bb
commit acf4d2f740
3 changed files with 33 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using mRemoteNG.Config.DataProviders;
using mRemoteNG.Config.Serializers.CredentialProviderSerializer;
using mRemoteNG.Credential;
namespace mRemoteNG.Config
{
public class CredentialRepositoryListSaver
{
private readonly IDataProvider<string> _dataProvider;
public CredentialRepositoryListSaver(IDataProvider<string> dataProvider)
{
if (dataProvider == null)
throw new ArgumentNullException(nameof(dataProvider));
_dataProvider = dataProvider;
}
public void Save(IEnumerable<ICredentialRepository> repositories)
{
var serializer = new CredentialRepositoryListSerializer();
var data = serializer.Serialize(repositories);
_dataProvider.Save(data);
}
}
}

View File

@@ -139,9 +139,12 @@ namespace mRemoteNG.UI.Forms
Startup.Instance.InitializeProgram(messageCollector);
var credRepoListLoader = new CredentialRepositoryListLoader(new FileDataProvider(_credentialRepoListPath), new CredentialRepositoryListDeserializer());
var credRepoListDataProvider = new FileDataProvider(_credentialRepoListPath);
var credRepoListLoader = new CredentialRepositoryListLoader(credRepoListDataProvider, new CredentialRepositoryListDeserializer());
var credRepoListSaver = new CredentialRepositoryListSaver(credRepoListDataProvider);
foreach (var repository in credRepoListLoader.Load())
Runtime.CredentialProviderCatalog.AddProvider(repository);
Runtime.CredentialProviderCatalog.CollectionChanged += (o, args) => credRepoListSaver.Save(Runtime.CredentialProviderCatalog.CredentialProviders);
msMain.Items.AddRange(new ToolStripItem[]
{

View File

@@ -139,6 +139,7 @@
<Compile Include="Config\CredentialHarvester.cs" />
<Compile Include="Config\CredentialRecordLoader.cs" />
<Compile Include="Config\CredentialRecordSaver.cs" />
<Compile Include="Config\CredentialRepositoryListSaver.cs" />
<Compile Include="Config\Serializers\CredentialProviderSerializer\CredentialRepositoryListDeserializer.cs" />
<Compile Include="Config\CredentialRepositoryListLoader.cs" />
<Compile Include="Config\Serializers\ActiveDirectoryDeserializer.cs" />