Пример #1
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // Check permissions
        LicenseHelper.CheckFeatureAndRedirect(RequestContext.CurrentDomain, FeatureEnum.OnlineUsers);

        // If session management is disabled inform about it
        if (!SessionManager.OnlineUsersEnabled)
        {
            // Set disabled module info
            ucDisabledModule.SettingsKeys = "CMSUseSessionManagement";
            ucDisabledModule.InfoText     = GetString("administration.users.online.disabled");

            gridElem.Visible = false;
        }
        else
        {
            SetHeaderActions();
            PrepareUnigrid();

            gridElem.HideFilterButton = true;
            gridElem.LoadGridDefinition();

            // Filter settings
            IUserFilter filter = (IUserFilter)gridElem.FilterFields[UniGrid.CUSTOM_FILTER_SOURCE_NAME].ValueControl;
            filter.DisplayUserEnabled = false;
        }
    }
Пример #2
0
        public List <IUser> Find(IUserFilter filter)
        {
            // Change Dictionary to List for easy Linq syntax
            var matchedUsers = Users.Select(u => u.Value);

            if (filter.UserIdSeqNum.HasValue)
            {
                matchedUsers = matchedUsers.Where(u => u.UserIdSeqNum == filter.UserIdSeqNum);
            }
            if (!string.IsNullOrWhiteSpace(filter.UserId))
            {
                matchedUsers = matchedUsers.Where(u => u.UserId.Equals(filter.UserId, StringComparison.OrdinalIgnoreCase));
            }
            if (!string.IsNullOrWhiteSpace(filter.FullName))
            {
                matchedUsers = matchedUsers.Where(u => u.FullName.Equals(filter.FullName, StringComparison.OrdinalIgnoreCase));
            }
            if (!string.IsNullOrWhiteSpace(filter.Activity))
            {
                matchedUsers = matchedUsers.Where(u => u.Activity.Equals(filter.Activity, StringComparison.OrdinalIgnoreCase));
            }
            if (!string.IsNullOrWhiteSpace(filter.Subactivity))
            {
                matchedUsers = matchedUsers.Where(u => u.Subactivity.Equals(filter.Subactivity, StringComparison.OrdinalIgnoreCase));
            }
            if (!string.IsNullOrWhiteSpace(filter.Owner))
            {
                matchedUsers = matchedUsers.Where(u => u.Owner.Equals(filter.Owner, StringComparison.OrdinalIgnoreCase));
            }

            return(matchedUsers.ToList());
        }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // If session management is disabled inform about it
        if (!SessionManager.OnlineUsersEnabled)
        {
            // Set disabled module info
            ucDisabledModule.TestSettingKeys = "CMSUseSessionManagement";
            ucDisabledModule.InfoText        = GetString("administration.users.online.disabled");

            gridElem.Visible = false;
        }
        else
        {
            SetHeaderActions();
            PrepareUnigrid();

            gridElem.HideFilterButton = true;
            gridElem.LoadGridDefinition();

            // Filter settings
            IUserFilter filter = (IUserFilter)gridElem.CustomFilter;
            filter.DisplayUserEnabled = false;
        }
    }
Пример #4
0
        public async Task <IUser> GetFirstAsync(IUserFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null)
        {
            var query = getQueryable();

            query = resolveFilter(query, filter);
            query = resolveOrderBy(query, orderBy);
            return(await Task.FromResult(query.FirstOrDefault()));
        }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        if (DisplayContacts)
        {
            gridElem.GridName = "User_OnlineDB.xml";
            gridElem.OrderBy  = "SessionFullName";

            var columns = "SessionUserID, SessionFullName, SessionEmail, SessionUserName, SessionNickName, SessionUserCreated, SessionLocation, SessionContactID, SessionLastActive";

            // If on-line users are displayed in contact management UI and site selector is used
            if (IsContactManagmentApplication() && SiteID > 0)
            {
                gridElem.WhereCondition = new WhereCondition().WhereEquals("SessionSiteID", SiteID).ToString(true);
            }
            // If on-line users are displayed elsewhere e.g. in Users application
            else
            {
                // If user is not global admin then display only current site
                if (CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin))
                {
                    columns += ",SessionSiteID";
                }
                else
                {
                    gridElem.WhereCondition = new WhereCondition().WhereEquals("SessionSiteID", SiteID).ToString(true);
                }
            }
            gridElem.Columns = columns;
        }

        // Hide unigrid default filter button
        gridElem.HideFilterButton = true;
        gridElem.LoadGridDefinition();

        // Get custom filter control
        filter = (IUserFilter)gridElem.CustomFilter;

        if (!SessionManager.StoreOnlineUsersInDatabase)
        {
            // Where condition needs to be generated not only when user click "advanced filter show" button
            gridElem.ApplyFilter(this, new EventArgs());
        }

        filter.CurrentMode = "online";
        if (DisplayContacts)
        {
            filter.EnableDisplayingGuests = true;
        }

        if (DisplayContacts)
        {
            filter.SessionInsteadOfUser = true;
        }
        filter.DisplayUserEnabled          = false;
        filter.EnableDisplayingHiddenUsers = true;
    }
Пример #6
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        gridElem.HideFilterButton = true;
        gridElem.LoadGridDefinition();

        // Filter settings
        IUserFilter filter = (IUserFilter)gridElem.CustomFilter;

        filter.DisplayUserEnabled = false;
    }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        gridElem.HideFilterButton = true;
        gridElem.LoadGridDefinition();

        // Filter settings
        IUserFilter filter = (IUserFilter)gridElem.FilterFields["UserID"].ValueControl;

        filter.DisplayUserEnabled = false;
    }
Пример #8
0
        private (string, object[]) resolveFilter(IUserFilter filter)
        {
            dynamic       paramsToAdd = new ExpandoObject();
            StringBuilder whereToAdd  = new StringBuilder();
            bool          hasWhere    = false;

            if (filter != null)
            {
                if (filter.Id.HasValue)
                {
                    whereToAdd.Append(" Id = @UserId ");
                    paramsToAdd.AccountId = filter.Id.Value;
                    hasWhere = true;
                }
                if (!String.IsNullOrEmpty(filter.Username))
                {
                    if (hasWhere)
                    {
                        whereToAdd.Append(" AND ");
                    }
                    whereToAdd.Append(" Username = @Username ");
                    paramsToAdd.Add(filter.Username);
                    hasWhere = true;
                }
                if (!String.IsNullOrEmpty(filter.Name))
                {
                    if (hasWhere)
                    {
                        whereToAdd.Append(" AND ");
                    }
                    whereToAdd.Append(" Name = @Name ");
                    paramsToAdd.Add(filter.Name);
                    hasWhere = true;
                }
                if (!String.IsNullOrEmpty(filter.Surname))
                {
                    if (hasWhere)
                    {
                        whereToAdd.Append(" AND ");
                    }
                    whereToAdd.Append(" Surname = @Surname ");
                    paramsToAdd.Add(filter.Surname);
                    hasWhere = true;
                }
            }

            if (hasWhere)
            {
                return($" WHERE {whereToAdd.ToString()}", paramsToAdd.ToArray());
            }
            return(String.Empty, paramsToAdd.ToArray());
        }
Пример #9
0
        public async Task <IPagedList <User> > ListAsync(IUserFilter filter)
        {
            Guard.Against.OutOfRange(filter.Page, Constants.Filter.PageRangeFrom, Constants.Filter.PageRangeTo, Resources.Page_InvalidPageNumber);
            Guard.Against.OutOfRange(filter.PageSize, Constants.Filter.PageSizeRangeFrom, Constants.Filter.PageSizeRangeTo, Resources.PageSize_InvalidPageSizeNumber);

            var query = _userManager.Users.OrderBy(x => x.AddedDate);

            var pagedList = await ApplyFilterAsync(query, filter);

            Guard.Against.NullNotFound(pagedList.Items, Resources.User_NotFoundList_ErrorMessage);

            return(pagedList);
        }
Пример #10
0
        public async Task <IUser> GetFirstAsync(IUserFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null)
        {
            User user         = null;
            var  filterOut    = resolveFilter(filter);
            var  filterToAdd  = filterOut.Item1;
            var  filterParams = filterOut.Item2;
            var  orderByToAdd = resolveOrderBy(orderBy);

            using (var connection = _connectionFactory.GetConnection())
            {
                string sqlQuery = $"SELECT Id, Username, Name, Surname, Properties, CreateDate, LastAccess FROM Users {filterToAdd} {orderByToAdd} ";
                user = await connection.QueryFirstOrDefaultAsync <User>(sqlQuery, filterParams);
            }
            return(user);
        }
Пример #11
0
        public IList <IDto> Filtering(Type type, IUserFilter filter)
        {
            IList <IDto> collection = null;

            if (Handled(type, filter, ref collection))
            {
                return(collection);
            }

            object builder =
                typeof(Builder <>).MakeGenericType(type)
                .GetMethod("CreateListOfSize", new[] { typeof(int) })
                .Invoke(null, new object[] { 10 });

            var collection2 = (IList)builder.GetType().GetMethod("Build").Invoke(builder, null);

            return(collection2.Cast <IDto>().ToList());
        }
Пример #12
0
        public static IQueryOver <TEntity, TEntity> Filtering <TEntity>(
            this IQueryOver <TEntity, TEntity> query, IUserFilter filter)
            where TEntity : IHasUid
        {
            if (_filterStrategyFactory == null)
            {
                throw new ArgumentNullException("FilterStrategyFactory is not initialize");
            }

            IFilteringStrategy <TEntity> strategy = _filterStrategyFactory.Create <TEntity>();

            if (strategy == null)
            {
                throw new ArgumentNullException(
                          string.Format("filter strategy for entity of type '{0}' is not found", typeof(TEntity).FullName));
            }

            return(strategy.Filtering(query, filter));
        }
Пример #13
0
        public IList <IDto> Filtering(Type type, IUserFilter filter)
        {
            Type    entityType = BusinessRelation.Instance.TryGetRelation(type) ?? type;
            dynamic repository = RepositoryFactory.InvokeGenericMethod <object>(entityType, "Create");

            var queryOver         = repository.Specify();
            var filteredQueryOver = QueryOverExtension.Filtering(queryOver, filter).Take(MAX_COUNT_LOADING_ROWS);

            var entities = (IList)filteredQueryOver.List();

            if (entityType.HasInterface <IDto>())
            {
                return(entities.Cast <IDto>().ToList());
            }

            var result = (from object item in entities select(IDto) item.MapTo(type)).ToList();

            return(result);
        }
Пример #14
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        FilterMode = "online";

        if (DisplayContacts)
        {
            gridElem.GridName = "User_OnlineDB.xml";
            gridElem.OrderBy  = "SessionFullName";
            gridElem.Columns  = "SessionUserID, SessionFullName, SessionEmail, SessionUserName, SessionNickName, SessionUserCreated, SessionLocation, SessionContactID, SessionSiteID, SessionLastActive";

            EnableDisplayingGuests = true;
        }

        // Hide unigrid default filter button
        gridElem.HideFilterButton = true;
        gridElem.LoadGridDefinition();

        // Get custom filter control
        if (SessionManager.StoreOnlineUsersInDatabase)
        {
            filter = (IUserFilter)gridElem.FilterFields["SessionSiteID"].ValueControl;
        }
        else
        {
            filter = (IUserFilter)gridElem.FilterFields["UserID"].ValueControl;

            // Where condition needs to be generated not only when user click "advanced filter show" button
            gridElem.ApplyFilter(this, new EventArgs());
        }

        if (DisplayContacts)
        {
            filter.SessionInsteadOfUser = true;
        }
        filter.DisplayUserEnabled          = false;
        filter.EnableDisplayingHiddenUsers = true;
    }
Пример #15
0
 private IQueryable <User> resolveFilter(IQueryable <User> query, IUserFilter filter)
 {
     if (filter != null)
     {
         if (filter.Id.HasValue)
         {
             query = query.Where(w => w.Id == filter.Id.Value).AsQueryable();
         }
         if (!String.IsNullOrEmpty(filter.Username))
         {
             query = query.Where(w => w.Username == filter.Username).AsQueryable();
         }
         if (!String.IsNullOrEmpty(filter.Name))
         {
             query = query.Where(w => w.Name == filter.Name).AsQueryable();
         }
         if (!String.IsNullOrEmpty(filter.Surname))
         {
             query = query.Where(w => w.Surname == filter.Surname).AsQueryable();
         }
     }
     return(query);
 }
Пример #16
0
 public async Task <bool> GetExistsAsync(IUserFilter filter = null)
 {
     throw new System.NotImplementedException();
 }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        FilterMode = "online";

        if (DisplayContacts)
        {
            gridElem.GridName = "User_OnlineDB.xml";
            gridElem.OrderBy = "SessionFullName";
            gridElem.Columns = "SessionUserID, SessionFullName, SessionEmail, SessionUserName, SessionNickName, SessionUserCreated, SessionLocation, SessionContactID, SessionSiteID, SessionLastActive";

            EnableDisplayingGuests = true;
        }

        // Hide unigrid default filter button
        gridElem.HideFilterButton = true;
        gridElem.LoadGridDefinition();

        // Get custom filter control
        if (SessionManager.StoreOnlineUsersInDatabase)
        {
            filter = (IUserFilter)gridElem.FilterFields["SessionSiteID"].ValueControl;
        }
        else
        {
            filter = (IUserFilter)gridElem.FilterFields["UserID"].ValueControl;

            // Where condition needs to be generated not only when user click "advanced filter show" button
            gridElem.ApplyFilter(this, new EventArgs());
        }

        if (DisplayContacts)
        {
            filter.SessionInsteadOfUser = true;
        }
        filter.DisplayUserEnabled = false;
        filter.EnableDisplayingHiddenUsers = true;
    }
Пример #18
0
 public async Task <IEnumerable <IUser> > FindAsync(IUserFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null, int?skip = null, int?take = null)
 {
     throw new System.NotImplementedException();
 }
Пример #19
0
 public async Task <int> GetCountAsync(IUserFilter filter = null)
 {
     throw new System.NotImplementedException();
 }
Пример #20
0
 public static IEnumerable <JiraWorkLogDto> FilterByUsers(this IEnumerable <JiraWorkLogDto> source,
                                                          IUserFilter searchParams)
 => source.WhereIf(searchParams.UserName != null && searchParams.UserName.Any(), x => searchParams.UserName.Contains(x.Author.Key));
Пример #21
0
        private bool Handled(Type type, IUserFilter filter, ref IList <IDto> collection)
        {
            if (type == typeof(TestSheetLiteDto))
            {
                collection = Builder <TestSheetLiteDto> .CreateListOfSize(_rnd.Next(GetMin(), GetMax()))
                             .All()
                             .Do(x => x.Rn                 = ++_rn)
                             .Do(x => x.Note               = _rnd.Phrase(50))
                             .Do(x => x.Number             = _rnd.Next(1000, 5000))
                             .Do(x => x.CreationDate       = NewDate())
                             .Do(x => x.SampleMaker        = "Иванов Иван Иванович")
                             .Do(x => x.SampleMakerDate    = NewDate())
                             .Do(x => x.OtkEmployee        = "Иванов Иван Иванович")
                             .Do(x => x.OtkEmployeeDate    = NewDate())
                             .Do(x => x.VpEmployee         = "Иванов Иван Иванович")
                             .Do(x => x.VpEmployeeDate     = NewDate())
                             .Do(x => x.LabChief           = "Иванов Иван Иванович")
                             .Do(x => x.LabChiefDate       = NewDate())
                             .Do(x => x.FixingCardNumber   = _rnd.Next(1000, 2000))
                             .Do(x => x.Heater             = "Иванов Иван Иванович")
                             .Do(x => x.HeaterDate         = NewDate())
                             .Do(x => x.Material           = _rnd.Phrase(80))
                             .Do(x => x.Certificate        = _rnd.Phrase(80))
                             .Do(x => x.ActSelectionDate   = NewDate())
                             .Do(x => x.ActSelectionNumber = _rnd.Next(1000, 5000))
                             .Do(x => x.RnActSelection     = _rnd.Next(1000, 5000))
                             .Build().Cast <IDto>().ToList();

                return(true);
            }

            if (type == typeof(TestResultDto))
            {
                if (((ITestSheetChild)filter).RnTestSheet > 0)
                {
                    collection =
                        Builder <TestResultDto> .CreateListOfSize(_rnd.Next(GetMin(), GetMax()))
                        .All()
                        .Do(x => x.Rn = ++_rn)
                        .Do(
                            x =>
                            x.AnalysesRange =
                                string.Format("{0} - {1}", _rnd.Next(2000, 3000).ToString(),
                                              _rnd.Next(3000, 4000).ToString()))
                        .Do(x => x.TestingMethod = _rnd.Phrase(20))
                        .Do(x => x.Requirements  = _rnd.Phrase(40))
                        .Do(x => x.Equipment     = _rnd.Phrase(20))
                        .Do(x => x.Value         = Math.Round((100 * _rnd.Next(0, 1.0)), _rnd.Next(1, 3)).ToString())
                        .Do(x => x.Note          = _rnd.Phrase(50))
                        .Do(x => x.Tester        = NewUser())
                        .Do(x => x.TesterDate    = NewDate())
                        .Do(x => x.IndicatorName = _rnd.Phrase(20))
                        .Do(x => x.Unit          = _rnd.Phrase(5))
                        .Do(x =>
                    {
                        if (!_rnd.Boolean())
                        {
                            return;
                        }
                        x.SampleResultSets =
                            Builder <SampleResultSetDto> .CreateListOfSize(GetMin()).All()
                            .Do(z => z.Rn    = ++_rn)
                            .Do(z => z.IsRow = true)
                            .Do(z =>
                        {
                            z.Value1  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value2  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value3  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value4  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value5  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value6  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value7  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value8  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value9  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value10 = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                        })
                            .Do(z => z.TestResult = x)
                            .Build();
                        // создаём заголовок таблицы
                        x.SampleResultSets.Insert(0, Builder <SampleResultSetDto> .CreateNew()
                                                  .Do(z => z.Rn    = ++_rn)
                                                  .Do(z => z.IsRow = false)
                                                  .Do(z =>
                        {
                            z.Value1  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value2  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value3  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value4  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value5  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value6  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value7  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value8  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value9  = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                            z.Value10 = _rnd.Boolean() ? _rnd.Next(10, 100).ToString() : string.Empty;
                        })
                                                  .Do(z => z.TestResult = x)
                                                  .Build());
                    })
                        .Build().Cast <IDto>().ToList();
                }
                else
                {
                    collection = new List <IDto>();
                }
                return(true);
            }

            if (type == typeof(HeatTreatmentDto))
            {
                if (((ITestSheetChild)filter).RnTestSheet > 0)
                {
                    collection =
                        Builder <HeatTreatmentDto> .CreateListOfSize(_rnd.Next(1, GetMin()))
                        .All()
                        .Do(x => x.Rn                 = ++_rn)
                        .Do(x => x.PutTemperature     = _rnd.Next(100, 500))
                        .Do(x => x.SetTemperature     = _rnd.Next(100, 500))
                        .Do(x => x.HeatingTime        = _rnd.Next(10, 120))
                        .Do(x => x.HoldingTime        = _rnd.Next(10, 120))
                        .Do(x => x.AmbientTemperature = _rnd.Next(100, 500))
                        .Build().Cast <IDto>().ToList();
                }
                else
                {
                    collection = new List <IDto>();
                }
                return(true);
            }

            if (type == typeof(ActSelectionOfProbeLiteDto))
            {
                collection =
                    Builder <ActSelectionOfProbeLiteDto> .CreateListOfSize(10)
                    .All()
                    .With(
                        x => x.ActSelectionOfProbeDepartments,
                        Builder <ActSelectionOfProbeDepartmentLiteDto> .CreateListOfSize(10)
                        .All()
                        .With(
                            x => x.ActSelectionOfProbeDepartmentRequirements,
                            Builder <ActSelectionOfProbeDepartmentRequirementLiteDto> .CreateListOfSize(10)
                            .All()
                            .With(x => x.Requirement, _ii++.ToString())
                            .Build())
                        .Build())
                    .Build()
                    .Cast <IDto>()
                    .ToList();

                return(true);
            }

            return(false);
        }
Пример #22
0
 public IList <IDto> Filtering(Type type, IUserFilter filter)
 {
     return(new List <IDto>());
 }
Пример #23
0
 /// <summary>
 /// Search all users given a set of parameters
 /// </summary>
 /// <param name="filter"></param>
 /// <returns></returns>
 public List <IUser> Find(IUserFilter filter)
 {
     return(_userRepo.Find(filter));
 }
 public AccountApiController(IAspRolesService iAspRoleService, IRegisterService iRegisterService, IUserFilter userfilter)
 {
     this.roleService     = iAspRoleService;
     this.registerService = iRegisterService;
     this.uf = userfilter;
 }
Пример #25
0
 public ActiveFilter(IUserFilter next)
 {
     Next = next;
 }
        /// <summary>
        /// The filtering.
        /// </summary>
        /// <param name="query">
        /// The query.
        /// </param>
        /// <param name="filter">
        /// The filter.
        /// </param>
        /// <returns>
        /// The <see cref="IQueryOver"/>.
        /// </returns>
        public IQueryOver <TEntity, TEntity> Filtering(IQueryOver <TEntity, TEntity> query, IUserFilter filter)
        {
            LogManager.Log.Debug("Default filter for entity {0}".StringFormat(typeof(TEntity)));

            if (filter != null)
            {
                return(query.FindByRn(filter.Rn));
            }

            return(query);
        }
Пример #27
0
 public AgeFilter(IUserFilter next)
 {
     Next = next;
 }
Пример #28
0
 public NullableFilter(IUserFilter next)
 {
     Next = next;
 }
Пример #29
0
 protected virtual IList <IDto> GetEntities(Type type, IUserFilter filter)
 {
     return(Enumerable.Empty <IDto>().ToList());
 }
Пример #30
0
        /// <summary>
        /// The filtering.
        /// </summary>
        /// <param name="query">
        /// The query.
        /// </param>
        /// <param name="filter">
        /// The filter.
        /// </param>
        /// <returns>
        /// The <see cref="IQueryOver"/>.
        /// </returns>
        IQueryOver <TEntity, TEntity> IFilteringStrategy <TEntity> .Filtering(IQueryOver <TEntity, TEntity> query, IUserFilter filter)
        {
            if (filter == null)
            {
                return(query);
            }

            return(this.Filtering(query, (TFilter)filter));
        }