コード例 #1
0
        /// <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();
        }