コード例 #1
0
        public IPagedGraphCollection <TAggregate> ExecuteWithPaging(IGraphSession session, IQuery <TAggregate> query, bool enlist)
        {
            var dataset = Execute(query);

            if (!dataset.Any())
            {
                return(new PagedGraphGraphCollection <TAggregate>());
            }
            var total   = dataset.First().Total;
            var page    = total == 0 ? 1 : query.Skip / total + 1;
            var results = Map(item =>
            {
                var aggregate = item.Create();
                if (session.Uow.Contains(aggregate))
                {
                    aggregate = session.Uow.Get <TAggregate>(ProxyUtils.GetEntityId(aggregate));
                }
                else if (enlist)
                {
                    aggregate = session.ProxyFactory.Create(aggregate, session);
                }
                return(aggregate);
            }, dataset);

            return(new PagedGraphGraphCollection <TAggregate>(session, this, query, results, (int)total, (int)page, enlist));
        }
コード例 #2
0
ファイル: AbstractRepository.cs プロジェクト: maratius1/plot
 protected AbstractRepository(IMapper <T> mapper, IGraphSession session, IProxyFactory proxyFactory)
 {
     _mapper           = mapper;
     _session          = session;
     _proxyFactory     = proxyFactory;
     _entityStateCache = session.State;
 }
コード例 #3
0
 public T Create <T>(T item, IGraphSession session, EntityStatus status = EntityStatus.Clean) where T : class
 {
     using (Timer.Start("Proxy Creation", _logger))
     {
         var generator = new Generator(session, _metadataFactory, _generator, _options, status);
         return(generator.Create(item));
     }
 }
コード例 #4
0
        public IQueryExecutor <TResult> Create <TResult>(IQuery <TResult> query, IGraphSession session)
        {
            if (!_queries.ContainsKey(query.GetType()))
            {
                throw new InvalidOperationException("Query executor has not been registered with the query executor factory");
            }

            return((IQueryExecutor <TResult>)_queries[query.GetType()](session));
        }
コード例 #5
0
 public PagedGraphGraphCollection(IGraphSession session, IQueryExecutor <T> executor, IQuery <T> query, IEnumerable <T> data, int total, int page, bool enlist)
 {
     _session  = session;
     _executor = executor;
     _query    = query;
     Data      = data;
     Total     = total;
     Page      = page;
 }
コード例 #6
0
ファイル: RepositoryFactory.cs プロジェクト: maratius1/plot
        public IRepository Create(IGraphSession session, Type type)
        {
            if (!_mappers.ContainsKey(type))
            {
                throw new InvalidOperationException($"A mapper for type {type} has not been supplied");
            }
            var generic = typeof(GenericAbstractRepository <>).MakeGenericType(type);

            return((IRepository)Activator.CreateInstance(generic, _mappers[type](session), session, _proxyFactory));
        }
コード例 #7
0
 public Generator(IGraphSession session, IMetadataFactory metadataFactory, ProxyGenerator generator, ProxyGenerationOptions options, EntityStatus status = EntityStatus.Clean)
 {
     _generator       = generator;
     _session         = session;
     _metadataFactory = metadataFactory;
     _state           = session.State;
     _status          = status;
     _dependencyStack = new Stack <EntityReference>();
     _options         = options;
 }
コード例 #8
0
        public ICypherTransaction Create(IGraphSession session)
        {
            if (_transactions.ContainsKey(session))
            {
                return(_transactions[session]);
            }
            var transaction = new CypherTransaction(_db, _logger);

            _transactions.Add(session, transaction);
            session.Flushed  += OnFlushed;
            session.Disposed += OnDisposed;
            return(transaction);
        }
コード例 #9
0
        public IEnumerable <TAggregate> Execute(IGraphSession session, IQuery <TAggregate> query)
        {
            var dataset = Execute(query);
            var results = Map(item =>
            {
                var aggregate = item.Create();
                if (session.Uow.Contains(aggregate))
                {
                    aggregate = session.Uow.Get <TAggregate>(ProxyUtils.GetEntityId(aggregate));
                }
                return(aggregate);
            }, dataset);

            return(results);
        }
コード例 #10
0
 public Mapper(IGraphSession session, IMetadataFactory metadataFactory)
 {
     _session        = session;
     MetadataFactory = metadataFactory;
 }
コード例 #11
0
 public void Inject(IGraphSession session)
 {
     _session.Ready(session);
 }
コード例 #12
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Delete(object item, IGraphSession session)
 {
     Delete((T)item, session);
 }
コード例 #13
0
 protected Mapper(IGraphSession session, ICypherTransactionFactory transactionFactory, IMetadataFactory metadataFactory)
 {
     _session            = session;
     _transactionFactory = transactionFactory;
     MetadataFactory     = metadataFactory;
 }
コード例 #14
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 protected abstract void OnDeleted(T item, IGraphSession session);
コード例 #15
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Create(object item, IGraphSession session)
 {
     Create((T)item, session);
 }
コード例 #16
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Update(T item, IGraphSession session)
 {
     OnUpdated(item, session);
 }
コード例 #17
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 protected abstract void OnCreated(T item, IGraphSession session);
コード例 #18
0
ファイル: GenericRepository.cs プロジェクト: maratius1/plot
 public GenericAbstractRepository(IMapper <T> mapper, IGraphSession session, IProxyFactory proxyFactory)
     : base(mapper, session, proxyFactory)
 {
 }
コード例 #19
0
ファイル: RepositoryFactory.cs プロジェクト: maratius1/plot
 public IRepository <T> Create <T>(IGraphSession session)
 {
     return(Create(session, typeof(T)) as IRepository <T>);
 }
コード例 #20
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Update(object item, IGraphSession session)
 {
     Update((T)item, session);
 }
コード例 #21
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Delete(T item, IGraphSession session)
 {
     OnDeleted(item, session);
 }
コード例 #22
0
 public IQueryExecutor <TResult> Create <TResult>(IQuery <TResult> query, IGraphSession session)
 {
     throw new NotImplementedException();
 }
コード例 #23
0
 public GraphSessionFlushedEventArgs(IGraphSession session)
 {
     Session = session;
 }
コード例 #24
0
 public GraphSessionDisposedEventArgs(IGraphSession session)
 {
     Session = session;
 }
コード例 #25
0
 public PersonMapper(IGraphSession session, ICypherTransactionFactory transactionFactory, IMetadataFactory metadataFactory)
     : base(session, transactionFactory, metadataFactory)
 {
 }
コード例 #26
0
ファイル: DefaultListener'.cs プロジェクト: maratius1/plot
 public void Create(T item, IGraphSession session)
 {
     OnCreated(item, session);
 }