Beispiel #1
0
 static async Task ExportJsonAsync(
     ApplicationDbContextFactory dbContextFactory,
     ILoggerFactory loggerFactory,
     CancellationToken cancellationToken)
 {
     var exporter = new JsonExporter(
         dbContextFactory,
         loggerFactory,
         AppContext.BaseDirectory);
     await exporter.ExportAsync(cancellationToken);
 }
        /// <summary>
        /// apply mods as an asynchronous operation.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <returns>Task&lt;System.Boolean&gt;.</returns>
        public async Task <bool> ApplyModsAsync(ModWriterParameters parameters)
        {
            Task <bool>[] tasks;
            using (var mutex = await writeLock.LockAsync())
            {
                tasks = new Task <bool>[]
                {
                    Task.Run(async() => await sqliteExporter.ExportAsync(parameters)),
                    Task.Run(async() => await jsonExporter.ExportAsync(parameters))
                };
                await Task.WhenAll(tasks);
            }

            return(tasks.All(p => p.Result));
        }