88using GitHub . Helpers ;
99using GitHub . Logging ;
1010using GitHub . Models ;
11+ using Rothko ;
1112using Serilog ;
13+ using Environment = System . Environment ;
1214using Task = System . Threading . Tasks . Task ;
1315
1416namespace GitHub . Services
@@ -21,14 +23,16 @@ public class UsageService : IUsageService
2123 static readonly ILogger log = LogManager . ForContext < UsageService > ( ) ;
2224 static readonly Calendar cal = CultureInfo . InvariantCulture . Calendar ;
2325 readonly IGitHubServiceProvider serviceProvider ;
26+ private readonly IFileFacade fileFacade ;
2427 string storePath ;
2528 string userStorePath ;
2629 Guid ? userGuid ;
2730
2831 [ ImportingConstructor ]
29- public UsageService ( IGitHubServiceProvider serviceProvider )
32+ public UsageService ( IGitHubServiceProvider serviceProvider , IFileFacade fileFacade )
3033 {
3134 this . serviceProvider = serviceProvider ;
35+ this . fileFacade = fileFacade ;
3236 }
3337
3438 public async Task < Guid > GetUserGuid ( )
@@ -152,7 +156,8 @@ async Task Initialize()
152156
153157 async Task < string > ReadAllTextAsync ( string path )
154158 {
155- using ( var s = File . OpenRead ( path ) )
159+ var fileInfo = fileFacade . GetFile ( path ) ;
160+ using ( var s = fileInfo . OpenRead ( ) )
156161 using ( var r = new StreamReader ( s , Encoding . UTF8 ) )
157162 {
158163 return await r . ReadToEndAsync ( ) ;
@@ -161,7 +166,8 @@ async Task<string> ReadAllTextAsync(string path)
161166
162167 async Task WriteAllTextAsync ( string path , string text )
163168 {
164- using ( var s = new FileStream ( path , FileMode . Create ) )
169+ var fileInfo = fileFacade . GetFile ( path ) ;
170+ using ( var s = fileInfo . OpenWrite ( ) )
165171 using ( var w = new StreamWriter ( s , Encoding . UTF8 ) )
166172 {
167173 await w . WriteAsync ( text ) ;
0 commit comments