/// <returns>A task that represents the asynchronous operation</returns> public virtual async Task <IActionResult> Delete(int id) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageEmailAccounts)) { return(AccessDeniedView()); } //try to get an email account with the specified id var emailAccount = await _emailAccountService.GetEmailAccountByIdAsync(id); if (emailAccount == null) { return(RedirectToAction("List")); } try { await _emailAccountService.DeleteEmailAccountAsync(emailAccount); //activity log await _customerActivityService.InsertActivityAsync("DeleteEmailAccount", string.Format(await _localizationService.GetResourceAsync("ActivityLog.DeleteEmailAccount"), emailAccount.Id), emailAccount); _notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.Configuration.EmailAccounts.Deleted")); return(RedirectToAction("List")); } catch (Exception exc) { await _notificationService.ErrorNotificationAsync(exc); return(RedirectToAction("Edit", new { id = emailAccount.Id })); } }
/// <summary> /// Uninstall the plugin /// </summary> /// <returns>A task that represents the asynchronous operation</returns> public override async Task UninstallAsync() { //smtp accounts foreach (var store in await _storeService.GetAllStoresAsync()) { var key = $"{nameof(SendinblueSettings)}.{nameof(SendinblueSettings.EmailAccountId)}"; var emailAccountId = await _settingService.GetSettingByKeyAsync <int>(key, storeId : store.Id, loadSharedValueIfNotFound : true); var emailAccount = await _emailAccountService.GetEmailAccountByIdAsync(emailAccountId); if (emailAccount != null) { await _emailAccountService.DeleteEmailAccountAsync(emailAccount); } } //settings if (_widgetSettings.ActiveWidgetSystemNames.Contains(SendinblueDefaults.SystemName)) { _widgetSettings.ActiveWidgetSystemNames.Remove(SendinblueDefaults.SystemName); await _settingService.SaveSettingAsync(_widgetSettings); } await _settingService.DeleteSettingAsync <SendinblueSettings>(); //generic attributes foreach (var store in await _storeService.GetAllStoresAsync()) { var messageTemplates = await _messageTemplateService.GetAllMessageTemplatesAsync(store.Id); foreach (var messageTemplate in messageTemplates) { await _genericAttributeService.SaveAttributeAsync <int?>(messageTemplate, SendinblueDefaults.TemplateIdAttribute, null); } } //schedule task var task = await _scheduleTaskService.GetTaskByTypeAsync(SendinblueDefaults.SynchronizationTask); if (task != null) { await _scheduleTaskService.DeleteTaskAsync(task); } //locales await _localizationService.DeleteLocaleResourcesAsync("Plugins.Misc.Sendinblue"); await base.UninstallAsync(); }