コード例 #1
0
 public ApplyMethodCall(Type handlerType, MethodSlot slot) : base(handlerType, slot.Method)
 {
     EventType = slot.EventType;
     if (slot.Setter != null)
     {
         Target = slot.Setter;
     }
 }
コード例 #2
0
 public CreateAggregateFrame(Type handlerType, MethodSlot slot) : base(handlerType, slot.Method)
 {
     ReturnAction = ReturnAction.Return;
     EventType    = slot.EventType;
     if (slot.Setter != null)
     {
         Target = slot.Setter;
     }
 }
コード例 #3
0
ファイル: MethodCollection.cs プロジェクト: phinett/marten
        public void AddLambda <T>(T lambda, Type eventType)
        {
            if (eventType == null)
            {
                throw new ArgumentNullException(nameof(eventType));
            }

            var name   = LambdaName + (++_lambdaNumber).ToString();
            var method = lambda.GetType().GetMethod("Invoke");
            var setter = new Setter(typeof(T), name)
            {
                InitialValue = lambda
            };
            var slot = new MethodSlot(setter, method, eventType);

            Methods.Add(slot);

            if (method.IsAsync())
            {
                IsAsync = true;
            }
        }
コード例 #4
0
 public override IEventHandlingFrame CreateEventTypeHandler(Type aggregateType,
                                                            DocumentMapping aggregateMapping, MethodSlot slot)
 {
     return(new ApplyMethodCall(ProjectionType, slot));
 }
コード例 #5
0
 public MaybeDeleteFrame(Type projectionType, Type aggregateType, Type identityType, MethodSlot slot) : base(slot.Method.IsAsync())
 {
     _aggregateType = aggregateType;
     _identityType  = identityType;
     EventType      = slot.EventType;
     Maybe          = new MethodCall(projectionType, slot.Method)
     {
         Target = slot.Setter
     };
 }
コード例 #6
0
ファイル: MethodCollection.cs プロジェクト: phinett/marten
 public abstract IEventHandlingFrame CreateEventTypeHandler(Type aggregateType,
                                                            DocumentMapping aggregateMapping, MethodSlot slot);
コード例 #7
0
 public override IEventHandlingFrame CreateEventTypeHandler(Type aggregateType,
                                                            DocumentMapping aggregateMapping, MethodSlot slot)
 {
     return(new MaybeDeleteFrame(ProjectionType, aggregateType, aggregateMapping.IdType, slot));
 }