Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }