public virtual ActionResult GridDataSource(DataManager dm, RedirectRuleGroup?redirectGroup, int?entityId)
        {
            var query = _redirectsService.GetAsQueryable();

            if (redirectGroup != null && entityId != null)
            {
                query = query.Where(p => p.EntityId == entityId && p.RedirectGroup == redirectGroup)
                        .OrderBy(p => p.Order);
            }
            else
            {
                query = query.Where(p => p.EntityId == null && p.RedirectGroup == RedirectRuleGroup.None);
            }

            var dataSource = query.Select(p => new
            {
                p.Id,
                p.Name,
                p.RequestedUrl,
                p.ResponseUrl,
                p.IgnoreCase,
                p.AppendQueryString,
                p.StopProcessingOfSubsequentRules,
                p.Order,
                p.Active,
                MatchType      = p.MatchType + "",
                ResponseType   = p.ResponseType + "",
                RedirectStatus = p.RedirectStatus == null ? "-" : p.RedirectStatus + "",
            });

            var result = dataSource.ApplyDataManager(dm, out var count).ToList();

            return(Json(dm.RequiresCounts ? new { result = result, count = count } : (object)result,
                        JsonRequestBehavior.AllowGet));
        }