public async Task <IActionResult> Unsubscribe([FromForm] EmailPreferencesModel request) { if (!request.All) { await UnsubscribeUserAsync(HttpContext.RequestAborted); } var topics = await GetEmailTopicsAsync(HttpContext.RequestAborted); foreach (var topic in topics.Where(x => request.Topics?.GetOrDefault(x.Key.Path) != true)) { await UnsubscribeAsync(topic.Key.Path, HttpContext.RequestAborted); } var vm = new EmailPreferencesVM { AppName = App.Name }; return(View("EmailPreferencesSaved", vm)); }
public async Task <IActionResult> EmailPreferences() { var vm = new EmailPreferencesVM { AppName = App.Name }; var user = await userStore.GetAsync(App.Id, UserId, HttpContext.RequestAborted); if (user == null || user.Settings.GetOrDefault(Providers.Email)?.Send == ChannelSend.NotSending) { return(View("EmailPreferencesSaved", vm)); } vm.Topics = await GetEmailTopicsAsync(HttpContext.RequestAborted); // There is nothing to configure. if (vm.Topics.Count == 0) { return(View("EmailPreferencesSaved", vm)); } return(View(vm)); }