public ActionResult List(GridCommand command, UrlRecordListModel model)
        {
            var gridModel = new GridModel<UrlRecordModel>();

            if (_services.Permissions.Authorize(StandardPermissionProvider.ManageUrlRecords))
            {
                var allLanguages = _languageService.GetAllLanguages(true);
                var defaultLanguageName = T("Admin.System.SeNames.Language.Standard");

                var urlRecords = _urlRecordService.GetAllUrlRecords(command.Page - 1, command.PageSize,
                    model.SeName, model.EntityName, model.EntityId, model.LanguageId, model.IsActive);

                var slugsPerEntity = _urlRecordService.CountSlugsPerEntity(urlRecords.Select(x => x.Id).Distinct().ToArray());

                gridModel.Data = urlRecords.Select(x =>
                {
                    string languageName;

                    if (x.LanguageId == 0)
                    {
                        languageName = defaultLanguageName;
                    }
                    else
                    {
                        var language = allLanguages.FirstOrDefault(y => y.Id == x.LanguageId);
                        languageName = (language != null ? language.Name : "".NaIfEmpty());
                    }

                    var urlRecordModel = new UrlRecordModel();
                    PrepareUrlRecordModel(urlRecordModel, x, true);

                    urlRecordModel.Language = languageName;
                    urlRecordModel.SlugsPerEntity = (slugsPerEntity.ContainsKey(x.Id) ? slugsPerEntity[x.Id] : 0);

                    return urlRecordModel;
                });

                gridModel.Total = urlRecords.TotalCount;
            }
            else
            {
                gridModel.Data = Enumerable.Empty<UrlRecordModel>();

                NotifyAccessDenied();
            }

            return new JsonResult
            {
                Data = gridModel
            };
        }
        public ActionResult List(string entityName, int? entityId)
        {
            if (!_services.Permissions.Authorize(StandardPermissionProvider.ManageUrlRecords))
                return AccessDeniedView();

            var model = new UrlRecordListModel
            {
                GridPageSize = _adminAreaSettings.GridPageSize,
                EntityName = entityName,
                EntityId = entityId
            };

            var allLanguages = _languageService.GetAllLanguages(true);

            model.AvailableLanguages = allLanguages
                .Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() })
                .ToList();

            model.AvailableLanguages.Insert(0, new SelectListItem { Text = T("Admin.System.SeNames.Language.Standard"), Value = "0" });

            return View(model);
        }