public MetricsEventSaver(
     IEventSaver eventSaver,
     IClaptrapDesign claptrapDesign)
 {
     _eventSaver     = eventSaver;
     _claptrapDesign = claptrapDesign;
 }
Exemple #2
0
 public ClaptrapSharedModule(
     IClaptrapDesign claptrapDesign,
     IClaptrapIdentity identity)
 {
     _claptrapDesign = claptrapDesign;
     _identity       = identity;
 }
 public MetricsClaptrapLifetimeInterceptor(
     IClaptrapIdentity identity,
     IClaptrapDesign claptrapDesign)
 {
     _identity       = identity;
     _claptrapDesign = claptrapDesign;
 }
Exemple #4
0
 public ClaptrapMasterModule(
     IClaptrapDesign claptrapDesign,
     IClaptrapIdentity identity)
 {
     _claptrapDesign = claptrapDesign;
     _identity       = identity;
 }
Exemple #5
0
 public static Activity?AddClaptrapTags(this Activity?activity, IClaptrapDesign design, IClaptrapIdentity identity)
 {
     return(activity?
            .AddTag(IsMinion, design.IsMinion())
            .AddTag(TypeCode, identity.TypeCode)
            .AddTag(Id, identity.Id));
 }
Exemple #6
0
 public MetricsStateLoader(
     IStateLoader stateLoader,
     IClaptrapDesign claptrapDesign)
 {
     _stateLoader    = stateLoader;
     _claptrapDesign = claptrapDesign;
 }
Exemple #7
0
 public ClaptrapMinionModule(IClaptrapDesign masterDesign,
                             IClaptrapIdentity masterIdentity,
                             IClaptrapIdentity minionIdentity)
 {
     _masterDesign   = masterDesign;
     _masterIdentity = masterIdentity;
     _minionIdentity = minionIdentity;
 }
 public static AutoMock CreateAutoMock(this IClaptrapDesign claptrapDesign,
                                       string id,
                                       IStateData stateData,
                                       Action <ContainerBuilder, ActorHost>?builderAction = default,
                                       Func <AutoMock>?autoMockFunc = default)
 {
     var claptrapIdentity     = new ClaptrapIdentity(id, claptrapDesign.ClaptrapTypeCode);
     var actorTypeInformation = ActorTypeInformation.Get(claptrapDesign.ClaptrapBoxImplementationType);
     var actorHost            = new ActorHost(actorTypeInformation,
                                              new ActorId(id),
        public void AddOrReplace(IClaptrapDesign design)
        {
            var typeCode = design.ClaptrapTypeCode;

            if (_globalDic.TryGetValue(typeCode, out var old))
            {
                _logger.LogInformation(
                    "found a old claptrap design in global store and it will be replaced. old: {@design}",
                    old);
            }

            _globalDic[typeCode] = design;
            _logger.LogInformation(
                "a claptrap design add to global store. design: {@design}",
                design);
        }
Exemple #10
0
        private string OneDesign(IClaptrapDesign claptrapDesign)
        {
            var sb = new StringBuilder();

            sb.AppendLine(
                claptrapDesign.IsMinion()
                    ? $"## {ClaptrapLink(claptrapDesign.ClaptrapTypeCode)} minion of {ClaptrapLink(claptrapDesign.ClaptrapMasterDesign.ClaptrapTypeCode)}"
                    : $"## {ClaptrapLink(claptrapDesign.ClaptrapTypeCode)}");


            sb.AppendLine("|event|handler|");
            sb.AppendLine("|---|---|");
            foreach (var(key, value) in claptrapDesign.EventHandlerDesigns)
            {
                sb.AppendLine(
                    $"|{EventLink(claptrapDesign.MasterOfSelfTypeCode(), key)}|{value.EventHandlerType.Name}|");
            }

            return(sb.ToString());
        }
Exemple #11
0
        private async Task AsyncEventingBasicConsumerOnReceived(object sender,
                                                                BasicDeliverEventArgs args,
                                                                IClaptrapDesign minionDesign)
        {
            _logger.LogDebug("message received from rabbit mq, exchange : {exchange} ,routeKey : {routeKey}",
                             args.Exchange,
                             args.RoutingKey);
            var consumer = (IAsyncBasicConsumer)sender;

            consumer.Model.BasicAck(args.DeliveryTag, false);
            var payload     = Decompress(args);
            var data        = _messageSerializer.Deserialize(payload);
            var evt         = _eventStringSerializer.Deserialize(data);
            var minionId    = new ClaptrapIdentity(evt.ClaptrapIdentity.Id, minionDesign.ClaptrapTypeCode);
            var minionProxy = _minionLocator.CreateProxy(minionId);

            _logger.LogTrace("create minion proxy for {id}", minionId);
            await minionProxy.MasterEventReceivedAsync(new[] { evt });

            _logger.LogDebug("a message sent to minion {minionId}", minionId);
        }
 public ClaptrapDesign(
     IClaptrapDesign claptrapDesign)
 {
     ClaptrapTypeCode               = claptrapDesign.ClaptrapTypeCode;
     ClaptrapMasterDesign           = claptrapDesign.ClaptrapMasterDesign;
     ClaptrapOptions                = claptrapDesign.ClaptrapOptions;
     StateDataType                  = claptrapDesign.StateDataType;
     EventLoaderFactoryType         = claptrapDesign.EventLoaderFactoryType;
     EventSaverFactoryType          = claptrapDesign.EventSaverFactoryType;
     StateLoaderFactoryType         = claptrapDesign.StateLoaderFactoryType;
     StateSaverFactoryType          = claptrapDesign.StateSaverFactoryType;
     InitialStateDataFactoryType    = claptrapDesign.InitialStateDataFactoryType;
     StateHolderFactoryType         = claptrapDesign.StateHolderFactoryType;
     EventHandlerFactoryFactoryType = claptrapDesign.EventHandlerFactoryFactoryType;
     EventNotifierFactoryType       = claptrapDesign.EventNotifierFactoryType;
     EventHandlerDesigns            = claptrapDesign.EventHandlerDesigns;
     ClaptrapBoxInterfaceType       = claptrapDesign.ClaptrapBoxInterfaceType;
     ClaptrapBoxImplementationType  = claptrapDesign.ClaptrapBoxImplementationType;
     ExtendInfos = claptrapDesign.ExtendInfos;
     ClaptrapStorageProviderOptions = claptrapDesign.ClaptrapStorageProviderOptions;
 }
        public static void FillDisplayInfo(IClaptrapDesign design)
        {
            SetValueIfFound(design.ExtendInfos, ClaptrapDisplayName, GetDisplayName(new[]
            {
                design.ClaptrapBoxImplementationType,
                design.ClaptrapBoxInterfaceType,
                design.StateDataType
            }));

            SetValueIfFound(design.ExtendInfos, ClaptrapDescription, GetDescription(new[]
            {
                design.ClaptrapBoxImplementationType,
                design.ClaptrapBoxInterfaceType,
                design.StateDataType
            }));

            foreach (var(_, eventHandlerDesign) in design.EventHandlerDesigns)
            {
                SetValueIfFound(eventHandlerDesign.ExtendInfos, EventDisplayName, GetDisplayName(new[]
                {
                    eventHandlerDesign.EventDataType
                }));

                SetValueIfFound(eventHandlerDesign.ExtendInfos, EventDescription, GetDescription(new[]
                {
                    eventHandlerDesign.EventDataType
                }));

                SetValueIfFound(eventHandlerDesign.ExtendInfos, EventHandlerDisplayName, GetDisplayName(new[]
                {
                    eventHandlerDesign.EventHandlerType
                }));

                SetValueIfFound(eventHandlerDesign.ExtendInfos, EventHandlerDescription, GetDescription(new[]
                {
                    eventHandlerDesign.EventHandlerType
                }));
            }
            static IEnumerable <Type> GetTypes(IClaptrapDesign design)
            {
                yield return(design.EventLoaderFactoryType);

                yield return(design.EventSaverFactoryType);

                yield return(design.StateHolderFactoryType);

                yield return(design.StateLoaderFactoryType);

                yield return(design.StateSaverFactoryType);

                yield return(design.EventHandlerFactoryFactoryType);

                yield return(design.InitialStateDataFactoryType);

                yield return(design.EventNotifierFactoryType);

                foreach (var designEventHandlerDesign in design.EventHandlerDesigns)
                {
                    yield return(designEventHandlerDesign.Value.EventHandlerType);
                }
            }
Exemple #15
0
 public static bool IsMinion(
     this IClaptrapDesign design)
 {
     return(ContainsMaster(design));
 }
 public SQLiteStorageModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #17
0
 public PostgreSQLMigrationModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #18
0
 public RelationalStateSaverModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #19
0
 public RelationalEventSaverModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #20
0
 public MongoDBMigrationModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #21
0
 public static bool ContainsMaster(
     this IClaptrapDesign design)
 {
     return(design.ClaptrapMasterDesign != null);
 }
Exemple #22
0
 public MasterClaptrapInfo(IClaptrapIdentity identity,
                           IClaptrapDesign design)
 {
     Identity = identity;
     Design   = design;
 }
Exemple #23
0
 public MySqlMigrationModule(IClaptrapDesign design)
 {
     _design = design;
 }
Exemple #24
0
 public static string MasterOfSelfTypeCode(this IClaptrapDesign design)
 {
     return(design.ContainsMaster() ? design.ClaptrapMasterDesign.ClaptrapTypeCode : design.ClaptrapTypeCode);
 }