public IEnumerable <T> GetAll(Func <T, bool> where) { var sql = _sqlRepository.GetAll(where).ToList(); IEnumerable <T> entities = new List <T>(); if (GetMongo <T> .IsMongo()) { var mongo = _mongoRepository.GetAll().AsQueryable(); IEnumerable <T> mongoToSql = new List <T>(); foreach (var item in mongo) { var entity = new MongoToSql().GetEntityFromMongo <T, TD>(item); IEnumerable <T> listEntity = (entity != null) ? new List <T>() { entity } : new List <T>(); mongoToSql = mongoToSql.AsQueryable().Union(listEntity); } entities = entities.Union(mongoToSql); } var mongoFuc = (entities.Any())?GetFunc(where, entities):entities; sql.AddRange(mongoFuc); _logging.Add(new Logging(DateTime.UtcNow, "Get all entities by function", typeof(T).Name, "")); return(sql); }
public QueryResult <T> GetAll(Query <T> query, bool isWithDeleted = false) { var sql = _sqlRepository.GetAll(query, isWithDeleted); IEnumerable <T> entities = new List <T>(); if (GetMongo <T> .IsMongo()) { var mongo = (isWithDeleted) ? _mongoRepository.GetAll().AsQueryable() : _mongoRepository.GetAll().Where(x => !x.IsDeleted).AsQueryable(); IEnumerable <T> mongoToSql = new List <T>(); foreach (var item in mongo) { var entity = new MongoToSql().GetEntityFromMongo <T, TD>(item); IEnumerable <T> listEntity = (entity != null) ? new List <T>() { entity } : new List <T>(); mongoToSql = mongoToSql.Union(listEntity); } entities = entities.Union(mongoToSql); } var mongoQuery = GetQuery(query, entities); sql.List = sql.List.Union(mongoQuery.List); sql.Count += mongoQuery.Count; _logging.Add(new Logging(DateTime.UtcNow, "Get all entities by query: " + query, typeof(T).Name, "")); return(sql); }
public int GetCount(Func <T, bool> where, bool isWithDeleted) { var sqlCount = _sqlRepository.GetCount(where, isWithDeleted); if (GetMongo <T> .IsMongo()) { var mongo = (isWithDeleted) ? _mongoRepository.GetAll().AsQueryable() : _mongoRepository.GetAll().Where(x => !x.IsDeleted).AsQueryable(); var mongoCount = 0; foreach (var item in mongo) { var mongoEntity = new MongoToSql().GetEntityFromMongo <T, TD>(item); mongoCount += (mongoEntity != null && where (mongoEntity)) ? 1 : 0; } sqlCount += mongoCount; } return(sqlCount); }