Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit e7fe92e

Browse files
Providing IEnvironment to UsageService
1 parent 754e937 commit e7fe92e

File tree

3 files changed

+18
-20
lines changed

3 files changed

+18
-20
lines changed

src/GitHub.VisualStudio/GitHubPackage.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using Microsoft.VisualStudio.Shell;
2121
using Microsoft.VisualStudio.Shell.Interop;
2222
using Octokit;
23+
using Rothko;
2324
using Serilog;
2425
using Task = System.Threading.Tasks.Task;
2526

@@ -249,7 +250,8 @@ async Task<object> CreateService(IAsyncServiceContainer container, CancellationT
249250
else if (serviceType == typeof(IUsageService))
250251
{
251252
var sp = await GetServiceAsync(typeof(IGitHubServiceProvider)) as IGitHubServiceProvider;
252-
return new UsageService(sp);
253+
var environment = await GetServiceAsync(typeof(IEnvironment)) as IEnvironment;
254+
return new UsageService(sp, environment);
253255
}
254256
else if (serviceType == typeof(IUsageTracker))
255257
{

src/GitHub.VisualStudio/Services/UsageService.cs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ public class UsageService : IUsageService
2323
static readonly ILogger log = LogManager.ForContext<UsageService>();
2424
static readonly Calendar cal = CultureInfo.InvariantCulture.Calendar;
2525
readonly IGitHubServiceProvider serviceProvider;
26-
private readonly IFileFacade fileFacade;
26+
private readonly IEnvironment environment;
2727
string storePath;
2828
string userStorePath;
2929
Guid? userGuid;
3030

3131
[ImportingConstructor]
32-
public UsageService(IGitHubServiceProvider serviceProvider, IFileFacade fileFacade)
32+
public UsageService(IGitHubServiceProvider serviceProvider, IEnvironment environment)
3333
{
3434
this.serviceProvider = serviceProvider;
35-
this.fileFacade = fileFacade;
35+
this.environment = environment;
3636
}
3737

3838
public async Task<Guid> GetUserGuid()
@@ -143,21 +143,17 @@ async Task Initialize()
143143
await ThreadingHelper.SwitchToMainThreadAsync();
144144

145145
var program = serviceProvider.GetService<IProgram>();
146-
storePath = Path.Combine(
147-
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
148-
program.ApplicationName,
149-
StoreFileName);
150-
userStorePath = Path.Combine(
151-
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
152-
program.ApplicationName,
153-
UserStoreFileName);
146+
147+
var localApplicationDataPath = environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
148+
149+
storePath = Path.Combine(localApplicationDataPath, program.ApplicationName, StoreFileName);
150+
userStorePath = Path.Combine(localApplicationDataPath, program.ApplicationName, UserStoreFileName);
154151
}
155152
}
156153

157154
async Task<string> ReadAllTextAsync(string path)
158155
{
159-
var fileInfo = fileFacade.GetFile(path);
160-
using (var s = fileInfo.OpenRead())
156+
using (var s = File.OpenRead(path))
161157
using (var r = new StreamReader(s, Encoding.UTF8))
162158
{
163159
return await r.ReadToEndAsync();
@@ -166,8 +162,7 @@ async Task<string> ReadAllTextAsync(string path)
166162

167163
async Task WriteAllTextAsync(string path, string text)
168164
{
169-
var fileInfo = fileFacade.GetFile(path);
170-
using (var s = fileInfo.OpenWrite())
165+
using (var s = new FileStream(path, FileMode.Create))
171166
using (var w = new StreamWriter(s, Encoding.UTF8))
172167
{
173168
await w.WriteAsync(text);

test/UnitTests/GitHub.VisualStudio/Services/MetricsTests.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using System.Linq;
1111
using System.Globalization;
1212
using GitHub.Reflection;
13+
using Rothko;
1314

1415
namespace MetricsTests
1516
{
@@ -426,14 +427,14 @@ public class UsageServiceTests : TestBaseClass
426427
[Test]
427428
public async Task GetUserGuidWorks()
428429
{
429-
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>());
430+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), Substitute.For<IEnvironment>());
430431
var guid = await usageService.GetUserGuid();
431432
}
432433

433434
[Test]
434435
public void IsSameDayWorks()
435436
{
436-
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>());
437+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), Substitute.For<IEnvironment>());
437438
var now = DateTimeOffset.Now;
438439
Assert.True(usageService.IsSameDay(now));
439440
Assert.True(usageService.IsSameDay(new DateTimeOffset(now.Year, now.Month, now.Day, 0, 0, 0, TimeSpan.Zero)));
@@ -447,7 +448,7 @@ public void IsSameDayWorks()
447448
[Test]
448449
public void IsSameWeekWorks()
449450
{
450-
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>());
451+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), Substitute.For<IEnvironment>());
451452
var now = DateTimeOffset.Now;
452453

453454
Assert.True(usageService.IsSameWeek(now));
@@ -475,7 +476,7 @@ public void IsSameWeekWorks()
475476
[Test]
476477
public void IsSameMonthWorks()
477478
{
478-
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>());
479+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), Substitute.For<IEnvironment>());
479480
var now = DateTimeOffset.Now;
480481

481482
Assert.True(usageService.IsSameMonth(now));

0 commit comments

Comments
 (0)