Skip to content

Commit 104f19c

Browse files
committed
InitializeAddInn now loads settings via a GeneralSettingsProvider instead
of directly from the PersistenceService. Additionally, two small refactorings for improved readibility.
1 parent 498c535 commit 104f19c

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

RetailCoder.VBE/AutoSave/AutoSave.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,26 @@ public void ConfigServiceSettingsChanged(object sender, EventArgs e)
3636

3737
private void _timer_Elapsed(object sender, ElapsedEventArgs e)
3838
{
39-
var saveCommand = _vbe.CommandBars.FindControl(VbeSaveCommandId);
40-
var activeProject = _vbe.ActiveVBProject;
41-
var unsaved = _vbe
42-
.VBProjects
43-
.Where(project => !project.IsSaved && !string.IsNullOrEmpty(project.FileName));
39+
SaveAllUnsavedProjects();
40+
}
4441

45-
foreach (var project in unsaved)
42+
private void SaveAllUnsavedProjects()
4643
{
47-
_vbe.ActiveVBProject = project;
48-
saveCommand.Execute();
44+
var saveCommand = _vbe.CommandBars.FindControl(VbeSaveCommandId);
45+
var activeProject = _vbe.ActiveVBProject;
46+
var unsaved = _vbe
47+
.VBProjects
48+
.Where(project => !project.IsSaved && !string.IsNullOrEmpty(project.FileName));
49+
50+
foreach (var project in unsaved)
51+
{
52+
_vbe.ActiveVBProject = project;
53+
saveCommand.Execute();
54+
}
55+
56+
_vbe.ActiveVBProject = activeProject;
4957
}
5058

51-
_vbe.ActiveVBProject = activeProject;
52-
}
5359

5460
public void Dispose()
5561
{

RetailCoder.VBE/Extension.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,14 +143,15 @@ private void InitializeAddIn()
143143
return;
144144
}
145145

146-
var config = new XmlPersistanceService<GeneralSettings>
146+
var configLoader = new XmlPersistanceService<GeneralSettings>
147147
{
148148
FilePath =
149149
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
150150
"Rubberduck", "rubberduck.config")
151151
};
152-
153-
var settings = config.Load(null);
152+
var configProvider = new GeneralConfigProvider(configLoader);
153+
154+
var settings = configProvider.Create();
154155
if (settings != null)
155156
{
156157
try

Rubberduck.SettingsProvider/XmlPersistanceService.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ public T Load(T toDeserialize)
3737

3838
if (!File.Exists(FilePath))
3939
{
40-
return (T)Convert.ChangeType(null, type);
40+
return FailedLoadReturnValue();
4141
}
4242
var doc = GetConfigurationDoc(FilePath);
4343

4444
var node = doc.Descendants().FirstOrDefault(e => e.Name.LocalName.Equals(type.Name));
4545
if (node == null)
4646
{
47-
return (T)Convert.ChangeType(null, type);
47+
return FailedLoadReturnValue();
4848
}
4949

5050
using (var reader = node.CreateReader())
@@ -57,11 +57,17 @@ public T Load(T toDeserialize)
5757
}
5858
catch
5959
{
60-
return (T)Convert.ChangeType(null, type);
60+
return FailedLoadReturnValue();
6161
}
6262
}
6363
}
6464

65+
private static T FailedLoadReturnValue()
66+
{
67+
return (T)Convert.ChangeType(null, typeof(T));
68+
}
69+
70+
6571
public void Save(T toSerialize)
6672
{
6773
var doc = GetConfigurationDoc(FilePath);

0 commit comments

Comments
 (0)