private SearchMutator <UserEntity, UsersResourceParameters> Search()
        {
            var searchMutator = new SearchMutator <UserEntity, UsersResourceParameters>();

            searchMutator.AddCondition(
                parameters => !string.IsNullOrWhiteSpace(parameters.Email),
                (users, parameters) => users.Where(user => user.Email.ToLower() == parameters.Email));

            searchMutator.AddCondition(
                parameters => !string.IsNullOrWhiteSpace(parameters.FirstName),
                (users, parameters) => users.Where(user => user.FirstName.ToLower() == parameters.FirstName));

            searchMutator.AddCondition(
                parameters => !string.IsNullOrWhiteSpace(parameters.LastName),
                (users, parameters) => users.Where(user => user.LastName.ToLower() == parameters.LastName));

            searchMutator.AddCondition(
                parameters => !string.IsNullOrWhiteSpace(parameters.SearchQuery),
                (users, parameters) => users.Where(u =>
                                                   u.Email.ToLower().Contains(parameters.SearchQuery) ||
                                                   u.FirstName.ToLower().Contains(parameters.SearchQuery) ||
                                                   u.LastName.ToLower().Contains(parameters.SearchQuery)));

            return(searchMutator);
        }
        private SearchMutator <MessageEntity, MessagesResourceParameters> Search()
        {
            var searchMutator = new SearchMutator <MessageEntity, MessagesResourceParameters>();

            searchMutator.AddCondition(
                parameters => parameters.ChannelId > 0,
                (messages, parameters) => messages.Where(message => message.ChannelId == parameters.ChannelId));

            searchMutator.AddCondition(
                parameters => !string.IsNullOrWhiteSpace(parameters.SearchQuery),
                (messages, parameters) => messages.Where(u => u.Text.ToLower().Contains(parameters.SearchQuery)));

            return(searchMutator);
        }