Exemplo n.º 1
0
        public override async Task <IViewProviderResult> BuildEditAsync(
            EditNotificationsViewModel viewModel,
            IViewProviderContext context)
        {
            var user = await _platoUserStore.GetByIdAsync(viewModel.Id);

            if (user == null)
            {
                return(await BuildIndexAsync(viewModel, context));
            }

            var roleNames = user.RoleNames ?? new string[]
            {
                DefaultRoles.Anonymous
            };

            var editNotificationsViewModel = new EditNotificationsViewModel()
            {
                Id = user.Id,
                CategorizedNotificationTypes = _notificationTypeManager.GetCategorizedNotificationTypes(roleNames),
                EnabledNotificationTypes     = _userNotificationTypeDefaults.GetUserNotificationTypesWithDefaults(user)
            };

            return(Views(
                       View <User>("Home.Edit.Header", model => user).Zone("header"),
                       View <User>("Home.Edit.Tools", model => user).Zone("header-right"),
                       View <User>("Home.Edit.Sidebar", model => user).Zone("content-left"),
                       View <EditNotificationsViewModel>("Home.Edit.Content", model => editNotificationsViewModel).Zone("content"),
                       View <User>("Home.Edit.Footer", model => user).Zone("actions")
                       ));
        }
Exemplo n.º 2
0
        public static bool NotificationEnabled(
            this IUser user,
            IUserNotificationTypeDefaults userNotificationTypeDefaults,
            INotificationType notificationType)
        {
            foreach (var userNotificationType in userNotificationTypeDefaults.GetUserNotificationTypesWithDefaults(user))
            {
                if (userNotificationType.Name.Equals(notificationType.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return(userNotificationType.Enabled);
                }
            }

            return(false);
        }