/// <summary> /// Uninstall the plugin /// </summary> /// <returns>A task that represents the asynchronous operation</returns> public override async Task UninstallAsync() { //generic attributes await _avalaraTaxManager.DeleteAttributesAsync(); //settings _taxSettings.ActiveTaxProviderSystemName = (await _taxPluginManager.LoadAllPluginsAsync()) .FirstOrDefault(taxProvider => !taxProvider.PluginDescriptor.SystemName.Equals(AvalaraTaxDefaults.SystemName)) ?.PluginDescriptor.SystemName; await _settingService.SaveSettingAsync(_taxSettings); _widgetSettings.ActiveWidgetSystemNames.Remove(AvalaraTaxDefaults.SystemName); await _settingService.SaveSettingAsync(_widgetSettings); await _settingService.DeleteSettingAsync <AvalaraTaxSettings>(); //schedule task var task = await _scheduleTaskService.GetTaskByTypeAsync(AvalaraTaxDefaults.DownloadTaxRatesTask.Type); if (task is not null) { await _scheduleTaskService.DeleteTaskAsync(task); } //locales await _localizationService.DeleteLocaleResourcesAsync("Enums.Nop.Plugin.Tax.Avalara.Domain"); await _localizationService.DeleteLocaleResourcesAsync("Plugins.Tax.Avalara"); await base.UninstallAsync(); }