public static FightBuilder ConfigureScheduling(this FightBuilder fightBuilder, Action <SchedulingBuilder> setupAction)
        {
            var builder = new SchedulingBuilder(fightBuilder.Services, fightBuilder);

            setupAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
Example #2
0
        public static FightBuilder ConfigureStorage(this FightBuilder fightBuilder, Action <StorageBuilder> setupAction)
        {
            StorageBuilder builder = new StorageBuilder(fightBuilder.Services);

            setupAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
Example #3
0
        public static FightBuilder ConfigureCacheing(this FightBuilder fightBuilder, Action <CachingBuilder> setupAction)
        {
            var builder = new CachingBuilder(fightBuilder.Services);

            setupAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
        public static FightBuilder AddUnitOfWork(this FightBuilder fightBuilder, Action <UnitOfWorkBuilder> buildAction)
        {
            UnitOfWorkBuilder builder = new UnitOfWorkBuilder(fightBuilder.Services);

            buildAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
Example #5
0
        public static IServiceCollection AddFighting(this IServiceCollection services, Action <FightBuilder> setupAction)
        {
            FightBuilder builder = new FightBuilder(services);

            setupAction?.Invoke(builder);
            builder.Build();
            return(services);
        }
Example #6
0
        public static FightBuilder ConfigureMessageServices(this FightBuilder fightBuilder, Action <MessageServiceBuilder> setupAction)
        {
            MessageServiceBuilder builder = new MessageServiceBuilder(fightBuilder.Services);

            setupAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
        public static FightBuilder ConfigureLotteryCalculating(this FightBuilder fightBuilder, Action <LotteryCalculatingBuilder> lotteryCaclulatingBuilder)
        {
            var builder = new LotteryCalculatingBuilder(fightBuilder.Services);

            lotteryCaclulatingBuilder?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
Example #8
0
        public static FightBuilder ConfigureApplicationServices(this FightBuilder fightBuilder, Action <ApplicationServiceBuilder> setupAction)
        {
            ApplicationServiceBuilder builder = new ApplicationServiceBuilder(fightBuilder.Services);

            setupAction?.Invoke(builder);
            builder.Build();
            return(fightBuilder);
        }
Example #9
0
        public static FightBuilder ConfigureLotteryDispatcher(this FightBuilder fightBuilder, Action <LotteryDispatcherBuilder> setupAction)
        {
            if (fightBuilder == null)
            {
                throw new ArgumentNullException(nameof(fightBuilder));
            }

            if (setupAction == null)
            {
                throw new ArgumentNullException(nameof(setupAction));
            }

            var builder = new LotteryDispatcherBuilder(fightBuilder.Services);

            setupAction?.Invoke(builder);
            builder.Build();

            return(fightBuilder);
        }
Example #10
0
 internal SchedulingBuilder(IServiceCollection services, FightBuilder fightBuilder)
 {
     Services     = services ?? throw new ArgumentNullException(nameof(services));
     FightBuilder = fightBuilder ?? throw new ArgumentNullException(nameof(fightBuilder));
 }
 public static FightBuilder ConfigureTradeLogging(this FightBuilder fightBuilder)
 {
     fightBuilder.Services.AddSingleton <IHostedService, LotteryAwardingMessageSubscriber>();
     fightBuilder.Services.AddSingleton <IHostedService, LotteryTicketingMessageSubscriber>();
     return(fightBuilder);
 }