コード例 #1
0
ファイル: CommonRepository.cs プロジェクト: KateKov/Game
        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);
        }
コード例 #2
0
ファイル: CommonRepository.cs プロジェクト: KateKov/Game
        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);
        }
コード例 #3
0
ファイル: CommonRepository.cs プロジェクト: KateKov/Game
        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);
        }