/// <inheritdoc /> public Stream FetchData(string url) { var cachedFilePath = Path.Combine(StoragePath, GetCachedFileName(url)); var cachedFilePathExists = PortableFile.Exists(cachedFilePath); if ((FetchMode == FetchMode.Online) || ((FetchMode == FetchMode.OnlineIfMissing) && !cachedFilePathExists)) { var directoryName = Path.GetDirectoryName(cachedFilePath); if (!String.IsNullOrWhiteSpace(directoryName)) { PortableDirectory.CreateDirectory(directoryName); } using (var binaryReader = new BinaryReader(dataProvider.FetchData(url))) { using (var fileStream = PortableFile.Create(cachedFilePath)) { binaryReader.BaseStream.CopyTo(fileStream); } } } cachedFilePathExists = PortableFile.Exists(cachedFilePath); if (!cachedFilePathExists) { throw new FileNotInCacheException(); } return(PortableFile.Open(cachedFilePath, PortableFileMode.Open)); }
public static T GetFromJsonFile <T>(String fileName) { T datas; using (var fileStream = PortableFile.Open(fileName, PortableFileMode.Open)) { datas = GetFromJSonStream <T>(fileStream); } return(datas); }
/// <summary> /// Traces the specified string. /// </summary> /// <param name="contents">The string to trace</param> internal async Task TraceAsync(String contents) { if (traceOn) { if (file == null) { file = await AceQLCommandUtil.GetTraceFileAsync().ConfigureAwait(false); } contents = DateTime.Now + " " + contents; await PortableFile.AppendAllTextAsync(file, "\r\n" + contents).ConfigureAwait(false); } }
public Stream FetchData(string url) { var cachedFilePath = GetCacheStoragePath() + GetCachedFileName(url); #if PORTABLE var cachedFilePathExists = PortableFile.Exists(cachedFilePath); #else var cachedFilePathExists = File.Exists(cachedFilePath); #endif if ((FetchMode == FetchMode.Online) || ((FetchMode == FetchMode.OnlineIfMissing) && !cachedFilePathExists)) { var directoryName = Path.GetDirectoryName(cachedFilePath); if (!String.IsNullOrWhiteSpace(directoryName)) { #if PORTABLE PortableDirectory.CreateDirectory(directoryName); #else Directory.CreateDirectory(directoryName); #endif } using (var binaryReader = new BinaryReader(dataProvider.FetchData(url))) { #if PORTABLE using (var fileStream = PortableFile.Create(cachedFilePath)) #else using (var fileStream = File.Create(cachedFilePath)) #endif { binaryReader.BaseStream.CopyTo(fileStream); } } } #if PORTABLE cachedFilePathExists = PortableFile.Exists(cachedFilePath); #else cachedFilePathExists = File.Exists(cachedFilePath); #endif if (!cachedFilePathExists) { throw new FileNotInCacheException(); } #if PORTABLE return(PortableFile.Open(cachedFilePath, PortableFileMode.Open)); #else return(new FileStream(cachedFilePath, FileMode.Open)); #endif }
/// <summary> /// Writes (serializes) an instance to a JSON file. /// </summary> /// <param name="instance"></param> /// <param name="fileName"></param> /// <param name="indented"></param> public static void WriteToJsonFile(this object instance, string fileName, bool indented) { var formatting = (indented ? Formatting.Indented : Formatting.None); var serializer = new JsonSerializer { TypeNameHandling = TypeNameHandling.Auto, Formatting = formatting }; using (var streamWriter = new StreamWriter(PortableFile.Open(fileName, PortableFileMode.OpenOrCreate))) { serializer.Serialize(streamWriter, instance); } }
/// <summary> /// Reads (deserializes) an instance of type <typeparamref Name="T"/> from a JSON file. /// </summary> /// <typeparam name="T">Target instance type.</typeparam> /// <param name="fileName">JSON source path and filename.</param> /// <returns>A new instance of <typeparamref Name="T"/> read from <paramref Name="fileName"/>.</returns> public static T CreateFromJsonFile <T>([NotNull] this string fileName) { if (fileName == null) { throw new ArgumentNullException(nameof(fileName)); } T data; using (var fileStream = PortableFile.Open(fileName, PortableFileMode.Open)) { data = CreateFromJsonStream <T>(fileStream); } return(data); }
public static T GetFromJsonFile <T>(String fileName) { T datas; #if PORTABLE using (var fileStream = PortableFile.Open(fileName, PortableFileMode.Open)) #else using (var fileStream = new FileStream(fileName, FileMode.Open)) #endif { datas = GetFromJSonStream <T>(fileStream); } return(datas); }
/// <summary> /// Reads (deserializes) an instance of type <typeparamref Name="T"/> from a JSON file. /// </summary> /// <typeparam name="T">Target instance type.</typeparam> /// <param name="fileName">JSON source path and filename.</param> /// <returns>A new instance of <typeparamref Name="T"/> read from <paramref Name="fileName"/>.</returns> public static T CreateFromJsonFile <T>(this String fileName) { T data; #if PORTABLE using (var fileStream = PortableFile.Open(fileName, PortableFileMode.Open)) { data = CreateFromJsonStream <T>(fileStream); } #else using (var fileStream = new FileStream(fileName, FileMode.Open)) { data = CreateFromJsonStream <T>(fileStream); } #endif return(data); }