예제 #1
0
        public async Task UninstallAddon(Addon addon)
        {
            var installedDirectories = addon.GetInstalledDirectories();
            var addonFolder          = _warcraftService.GetAddonFolderPath(addon.ClientType);

            RemoveThumbnail(addon);

            foreach (var dir in installedDirectories)
            {
                var addonDirectory = Path.Combine(addonFolder, dir);
                await FileUtilities.DeleteDirectory(addonDirectory);
            }

            _addonRepository.DeleteItem(addon);

            AddonUninstalled?.Invoke(this, new AddonEventArgs(addon, AddonChangeType.Uninstalled));
        }
예제 #2
0
        private async Task InstallUnzippedDirectory(string unzippedDirectory, WowClientType clientType)
        {
            var addonFolderPath = await _warcraftService.GetAddonFolderPath(clientType);

            var unzippedFolders = Directory.GetDirectories(unzippedDirectory);

            foreach (var unzippedFolder in unzippedFolders)
            {
                var unzippedDirectoryName = Path.GetFileName(unzippedFolder);
                var unzipLocation         = Path.Combine(addonFolderPath, unzippedDirectoryName);
                FileUtilities.DirectoryCopy(unzippedFolder, unzipLocation);
            }
        }
예제 #3
0
 public string GetFullInstallPath(Addon addon) => Path.GetFullPath(Path.Combine(_warcraftService.GetAddonFolderPath(addon.ClientType), addon.FolderName));