public DapperRepository(ISoftDeleteQueryFilter softDeleteQueryFilter, ILogger <DapperRepository <TEntity, TPrimaryKey> > logger) { _softDeleteQueryFilter = softDeleteQueryFilter; _logger = logger; _creationActionFilter = ServiceLocator.GetService <IAuditActionFilter <TEntity, TPrimaryKey> >(typeof(CreationAuditDapperActionFilter <TEntity, TPrimaryKey>).Name); _modificationActionFilter = ServiceLocator.GetService <IAuditActionFilter <TEntity, TPrimaryKey> >(typeof(ModificationAuditDapperActionFilter <TEntity, TPrimaryKey>).Name); _deletionAuditDapperActionFilter = ServiceLocator.GetService <IAuditActionFilter <TEntity, TPrimaryKey> >(typeof(DeletionAuditDapperActionFilter <TEntity, TPrimaryKey>).Name); isUserSearchElasitcModule = DbSetting.Instance.UseElasicSearchModule; if (isUserSearchElasitcModule) { _creationElasitcFilter = ServiceLocator.GetService <IElasticFilter <TEntity, TPrimaryKey> >(typeof(CreationElasticFilter <TEntity, TPrimaryKey>).Name); _modificationElasitcFilter = ServiceLocator.GetService <IElasticFilter <TEntity, TPrimaryKey> >(typeof(ModificationElasticFilter <TEntity, TPrimaryKey>).Name); _deletionElasitcFilter = ServiceLocator.GetService <IElasticFilter <TEntity, TPrimaryKey> >(typeof(DeletionElasticFilter <TEntity, TPrimaryKey>).Name); } }
protected JProperty CreateQueryElem(IElasticFilter filter, string[] disableOr, string[] disableNot, string[] disableLike) { var simpleFilter = filter as SimpleFilter; var rangeFilter = filter as RangeFilter; var queryFilter = filter as QueryFilter; var groupFilter = filter as GroupFilter; JProperty result = null; if (groupFilter != null) { var props = groupFilter.Filters.Select(n => CreateQueryElem(n, disableOr, disableNot, disableLike)).ToArray(); return((groupFilter.IsDisjunction) ? Should(props) : Must(props)); } if (simpleFilter != null) { result = simpleFilter.Name != Options.TypePath ? GetSingleFilterWithNot(simpleFilter.Name, simpleFilter.Values, simpleFilter.FromJson, disableOr, disableNot, disableLike) : null; } if (rangeFilter != null) { result = new JProperty("range", new JObject(GetSingleRangeQuery(rangeFilter)) ); } if (queryFilter != null) { result = new JProperty("query_string", JObject.FromObject(new { query = queryFilter.Query, lenient = true }) ); } if (filter.IsDisjunction && result != null) { result.Value["or"] = true; } return(result); }