Exemple #1
0
        /// <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));
        }
Exemple #2
0
        public static T GetFromJsonFile <T>(String fileName)
        {
            T datas;

            using (var fileStream = PortableFile.Open(fileName, PortableFileMode.Open))
            {
                datas = GetFromJSonStream <T>(fileStream);
            }

            return(datas);
        }
Exemple #3
0
 /// <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
        }
Exemple #5
0
        /// <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);
            }
        }
Exemple #6
0
        /// <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);
        }