Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
 protected AbstractRepository(IMapper <T> mapper, IGraphSession session, IProxyFactory proxyFactory)
 {
     _mapper           = mapper;
     _session          = session;
     _proxyFactory     = proxyFactory;
     _entityStateCache = session.State;
 }
Ejemplo n.º 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));
     }
 }
Ejemplo n.º 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));
        }
Ejemplo n.º 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;
 }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 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;
 }
Ejemplo n.º 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);
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 10
0
 public Mapper(IGraphSession session, IMetadataFactory metadataFactory)
 {
     _session        = session;
     MetadataFactory = metadataFactory;
 }
Ejemplo n.º 11
0
 public void Inject(IGraphSession session)
 {
     _session.Ready(session);
 }
Ejemplo n.º 12
0
 public void Delete(object item, IGraphSession session)
 {
     Delete((T)item, session);
 }
Ejemplo n.º 13
0
 protected Mapper(IGraphSession session, ICypherTransactionFactory transactionFactory, IMetadataFactory metadataFactory)
 {
     _session            = session;
     _transactionFactory = transactionFactory;
     MetadataFactory     = metadataFactory;
 }
Ejemplo n.º 14
0
 protected abstract void OnDeleted(T item, IGraphSession session);
Ejemplo n.º 15
0
 public void Create(object item, IGraphSession session)
 {
     Create((T)item, session);
 }
Ejemplo n.º 16
0
 public void Update(T item, IGraphSession session)
 {
     OnUpdated(item, session);
 }
Ejemplo n.º 17
0
 protected abstract void OnCreated(T item, IGraphSession session);
Ejemplo n.º 18
0
 public GenericAbstractRepository(IMapper <T> mapper, IGraphSession session, IProxyFactory proxyFactory)
     : base(mapper, session, proxyFactory)
 {
 }
Ejemplo n.º 19
0
 public IRepository <T> Create <T>(IGraphSession session)
 {
     return(Create(session, typeof(T)) as IRepository <T>);
 }
Ejemplo n.º 20
0
 public void Update(object item, IGraphSession session)
 {
     Update((T)item, session);
 }
Ejemplo n.º 21
0
 public void Delete(T item, IGraphSession session)
 {
     OnDeleted(item, session);
 }
Ejemplo n.º 22
0
 public IQueryExecutor <TResult> Create <TResult>(IQuery <TResult> query, IGraphSession session)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 23
0
 public GraphSessionFlushedEventArgs(IGraphSession session)
 {
     Session = session;
 }
Ejemplo n.º 24
0
 public GraphSessionDisposedEventArgs(IGraphSession session)
 {
     Session = session;
 }
Ejemplo n.º 25
0
 public PersonMapper(IGraphSession session, ICypherTransactionFactory transactionFactory, IMetadataFactory metadataFactory)
     : base(session, transactionFactory, metadataFactory)
 {
 }
Ejemplo n.º 26
0
 public void Create(T item, IGraphSession session)
 {
     OnCreated(item, session);
 }