Exemplo n.º 1
0
        public static async Task ExportToFileAsync(this ICharacterBuildService characterBuildService, ClaimsPrincipal user, IFileStorageService fileStorageService, string fileName)
        {
            // TODO With the MemoryStream we'll end up holding everything in memory at once.
            // For larger exports, instead connect some pipes together to do this?
            // Also emit status at regular intervals :)
            using (var ms = new MemoryStream())
            {
                await characterBuildService.ExportJsonAsync(user, ms);

                ms.Seek(0, SeekOrigin.Begin);
                await fileStorageService.WriteAsync(user, fileName, ms);
            }
        }
Exemplo n.º 2
0
        public static async Task <ImportResult> ImportFromFileAsync(this ICharacterBuildService characterBuildService, ClaimsPrincipal user, IFileStorageService fileStorageService, StoredFile file)
        {
            var stream = await fileStorageService.ReadAsync(user, file);

            if (stream == null)
            {
                return(null); // Error should already have been reported via toast service
            }

            using (stream)
            {
                return(await characterBuildService.ImportJsonAsync(user, stream));
            }
        }