using Mlaumcherb.Client.Avalonia.классы; namespace Mlaumcherb.Client.Avalonia.сеть.TaskFactories; public class ModpackDownloadTaskFactory : INetworkTaskFactory { INetworkTaskFactory _implementationVersion; private GameVersionDescriptor _descriptor; public ModpackDownloadTaskFactory(GameVersionDescriptor descriptor) { if(descriptor.modpack is null) throw new ArgumentNullException(nameof(descriptor.modpack)); _descriptor = descriptor; _implementationVersion = descriptor.modpack.format_version switch { 1 => new MyModpackV1DownloadTaskFactory(descriptor), _ => throw new Exception($"Unknown Modpack format_version: {descriptor.modpack.format_version}") }; } public Task CreateAsync(bool checkHashes) { return _implementationVersion.CreateAsync(checkHashes); } }