AcManager.LocaleHelper.LoadPackage C# (CSharp) Méthode

LoadPackage() private static méthode

private static LoadPackage ( string langId, string filename ) : Task
langId string
filename string
Résultat Task
        private static async Task LoadPackage(string langId, string filename) {
            try {
                Dictionary<string, Assembly> assemblies;
                byte[] update;

                using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
                using (var zip = new ZipArchive(fs)) {
                    var manifest = LocalePackageManifest.FromArchive(zip);
                    if (manifest == null) throw new Exception("Manifest is missing");
                    
                    LoadedVersion = manifest.Version;
                    update = await LoadPackageTimeout(langId, manifest.Version);

                    if (update != null) {
                        using (var memory = new MemoryStream(update))
                        using (var updateZip = new ZipArchive(memory)) {
                            assemblies = LoadAssemblies(updateZip);

                            manifest = LocalePackageManifest.FromArchive(updateZip);
                            if (manifest == null) throw new Exception("Manifest is missing");

                            LoadedVersion = manifest.Version;
                        }
                    } else {
                        assemblies = LoadAssemblies(zip);
                    }
                }

                if (update != null) {
                    try {
                        JustUpdated = true;
                        File.WriteAllBytes(filename, update);
                        Logging.Write("Locale updated");
                    } catch (Exception e) {
                        Logging.Warning("Cannot update locale: " + e);
                    }
                }

                SetPackage(assemblies);
            } catch (Exception e) {
                Logging.Warning("Cannot load locale package: " + e);
            }
        }
    }