public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManagePlacements))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in itemIds)
                    {
                        await _placementsManager.RemoveShapePlacementsAsync(item);
                    }
                    _notifier.Success(H["Placements successfully removed."]);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageMediaProfiles))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var mediaProfilesDocument = await _mediaProfilesManager.LoadMediaProfilesDocumentAsync();

                var checkedContentItems = mediaProfilesDocument.MediaProfiles.Where(x => itemIds.Contains(x.Key));
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        await _mediaProfilesManager.RemoveMediaProfileAsync(item.Key);
                    }
                    _notifier.Success(H["Media profiles successfully removed."]);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #3
0
        public async Task <ActionResult> ListPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageSitemaps))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var sitemapsList = await _sitemapManager.LoadSitemapsAsync();

                var checkedContentItems = sitemapsList.Where(x => itemIds.Contains(x.SitemapId));
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        await _sitemapManager.DeleteSitemapAsync(item.SitemapId);
                    }
                    await _notifier.SuccessAsync(H["Sitemaps successfully removed."]);

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction(nameof(List)));
        }
Пример #4
0
        public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageAdminMenu))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var adminMenuList       = (await _adminMenuService.GetAdminMenuListAsync()).AdminMenu;
                var checkedContentItems = adminMenuList.Where(x => itemIds.Contains(x.Id));
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        var adminMenu = adminMenuList.FirstOrDefault(x => String.Equals(x.Id, item.Id, StringComparison.OrdinalIgnoreCase));
                        await _adminMenuService.DeleteAsync(adminMenu);
                    }
                    _notifier.Success(H["Admin menus successfully removed."]);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction(nameof(List)));
        }
Пример #5
0
        public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageRemoteInstances))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var remoteClients       = (await _remoteClientService.GetRemoteClientListAsync()).RemoteClients;
                var checkedContentItems = remoteClients.Where(x => itemIds.Contains(x.Id)).ToList();

                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        await _remoteClientService.DeleteRemoteClientAsync(item.Id);
                    }
                    await _notifier.SuccessAsync(H["Remote clients successfully removed."]);

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #6
0
        public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageQueries))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var queriesList = await _queryManager.ListQueriesAsync();

                var checkedContentItems = queriesList.Where(x => itemIds.Contains(x.Name));
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        await _queryManager.DeleteQueryAsync(item.Name);
                    }
                    _notifier.Success(H["Queries successfully removed."]);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction(nameof(Index)));
        }
Пример #7
0
        public async Task <IActionResult> Index(ViewModels.ContentOptions options, PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageEmailTemplates))
            {
                return(Forbid());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager             = new Pager(pagerParameters, siteSettings.PageSize);
            var templatesDocument = await _templatesManager.GetEmailTemplatesDocumentAsync();

            var templates = templatesDocument.Templates.ToList();

            if (!string.IsNullOrWhiteSpace(options.Search))
            {
                templates = templates.Where(x => x.Value.Name.Contains(options.Search, StringComparison.OrdinalIgnoreCase)).ToList();
            }

            var count = templates.Count;

            templates = templates.OrderBy(x => x.Value.Name)
                        .Skip(pager.GetStartIndex())
                        .Take(pager.PageSize).ToList();

            var pagerShape = (await New.Pager(pager)).TotalItemCount(count);

            var model = new EmailTemplateIndexViewModel
            {
                Templates = templates.ConvertAll(x => new TemplateEntry {
                    Id = x.Key, Template = x.Value
                }),
                Options = options,
                Pager   = pagerShape
            };

            model.Options.ContentsBulkAction = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = S["Delete"], Value = nameof(ContentsBulkAction.Remove)
                }
            };

            return(View("Index", model));
        }
Пример #8
0
        public async Task <ActionResult> IndexPost(ViewModels.ContentOptions options, IEnumerable <string> itemIds)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageIndexes))
            {
                return(Forbid());
            }

            if (itemIds?.Count() > 0)
            {
                var luceneIndexSettings = await _luceneIndexSettingsService.GetSettingsAsync();

                var checkedContentItems = luceneIndexSettings.Where(x => itemIds.Contains(x.IndexName));
                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        await _luceneIndexingService.DeleteIndexAsync(item.IndexName);
                    }
                    _notifier.Success(H["Indices successfully removed."]);
                    break;

                case ContentsBulkAction.Reset:
                    foreach (var item in checkedContentItems)
                    {
                        if (!_luceneIndexManager.Exists(item.IndexName))
                        {
                            return(NotFound());
                        }

                        _luceneIndexingService.ResetIndex(item.IndexName);
                        await _luceneIndexingService.ProcessContentItemsAsync(item.IndexName);

                        _notifier.Success(H["Index <em>{0}</em> reset successfully.", item.IndexName]);
                    }
                    break;

                case ContentsBulkAction.Rebuild:
                    foreach (var item in checkedContentItems)
                    {
                        if (!_luceneIndexManager.Exists(item.IndexName))
                        {
                            return(NotFound());
                        }

                        await _luceneIndexingService.RebuildIndexAsync(item.IndexName);

                        await _luceneIndexingService.ProcessContentItemsAsync(item.IndexName);

                        _notifier.Success(H["Index <em>{0}</em> rebuilt successfully.", item.IndexName]);
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #9
0
        public async Task <ActionResult> ListPOST(ViewModels.ContentOptions options, IEnumerable <int> itemIds)
        {
            if (itemIds?.Count() > 0)
            {
                var checkedContentItems = await _session.Query <ContentItem, ContentItemIndex>().Where(x => x.DocumentId.IsIn(itemIds) && x.Latest).ListAsync();

                switch (options.BulkAction)
                {
                case ContentsBulkAction.None:
                    break;

                case ContentsBulkAction.PublishNow:
                    foreach (var item in checkedContentItems)
                    {
                        if (!await _authorizationService.AuthorizeAsync(User, Permissions.PublishContent, item))
                        {
                            _notifier.Warning(H["Couldn't publish selected content."]);
                            _session.Cancel();
                            return(Forbid());
                        }

                        await _contentManager.PublishAsync(item);
                    }
                    _notifier.Success(H["Content successfully published."]);
                    break;

                case ContentsBulkAction.Unpublish:
                    foreach (var item in checkedContentItems)
                    {
                        if (!await _authorizationService.AuthorizeAsync(User, Permissions.PublishContent, item))
                        {
                            _notifier.Warning(H["Couldn't unpublish selected content."]);
                            _session.Cancel();
                            return(Forbid());
                        }

                        await _contentManager.UnpublishAsync(item);
                    }
                    _notifier.Success(H["Content successfully unpublished."]);
                    break;

                case ContentsBulkAction.Remove:
                    foreach (var item in checkedContentItems)
                    {
                        if (!await _authorizationService.AuthorizeAsync(User, Permissions.DeleteContent, item))
                        {
                            _notifier.Warning(H["Couldn't remove selected content."]);
                            _session.Cancel();
                            return(Forbid());
                        }

                        await _contentManager.RemoveAsync(item);
                    }
                    _notifier.Success(H["Content successfully removed."]);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(RedirectToAction("List"));
        }