Esempio n. 1
0
        static async Task MainAsync()
        {
            try
            {
                var config  = BusConfig.GetConfig(container);
                var factory = container.GetInstance <IBusFactory>();

                Bus = factory.Create(config);

                Console.WriteLine($"Starting bus: {Bus.Name}");
                await Bus.Start();

                Console.WriteLine($"Bus Started");

                //example of sending a message
                var producer = container.GetInstance <MessageProducer>();
                Console.WriteLine("Enter how many buy orders you want to execute:");
                var numberOfBuyOrders = Console.ReadLine();

                await producer.ProduceMessages(int.Parse(numberOfBuyOrders));
            }
            catch (Exception e)
            {
                Console.WriteLine($"Exception was thrown: {e.Message}");
            }
        }
Esempio n. 2
0
 public LinkBuilder(IDateFormatter dateFormatter,
                    IOptions <BusConfig> busOptions, IOptions <RailwayConfig> railwayOptions)
 {
     busConfig          = busOptions.Value;
     railwayConfig      = railwayOptions.Value;
     this.dateFormatter = dateFormatter;
 }
Esempio n. 3
0
        public void ConfigureMassTransit(IServiceCollection services)
        {
            var busConfig = new BusConfig();

            Configuration.GetSection("BusConfig").Bind(busConfig);

            services.AddMassTransit(x =>
            {
                x.AddConsumer <MainConsumerSrv1>();

                x.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(cfg =>
                {
                    var host = cfg.Host(new Uri(busConfig.Host), h =>
                    {
                        h.Username(busConfig.Username);
                        h.Password(busConfig.Password);
                    });

                    cfg.ReceiveEndpoint(host, "request-service-1-queue", ep =>
                    {
                        ep.ConfigureConsumer <MainConsumerSrv1>(provider);
                    });
                }));
            });

            EndpointConvention.Map <IGatewayRequest>(new Uri("rabbitmq://localhost/request-service-main-queue"));
            EndpointConvention.Map <IService2Request>(new Uri("rabbitmq://localhost/request-service-2-queue"));

            services.AddSingleton <IHostedService, MassTransitHostedService>();
        }
Esempio n. 4
0
        public static void Setup()
        {
            var assambly = Assembly.GetAssembly(typeof(Program));
            var config   = ESS.FW.Common.Configurations.Configuration.Create()
                           .UseAutofac()
                           .RegisterCommonComponents()
                           //.UseEntLibLog()
            ;

            //config.SetDefault<IConsumeObserver, ConsumeObserver>(LifeStyle.Transient);

            //config.SetDefault<IIdGenerator, IdGeneratorRepository>(LifeStyle.Transient);

            //config.UseEfRepository(typeof(JztDbContext));

            config.SetDefault <ILoggerFactory, LoggerFactory>();
            var busConfig = new BusConfig()
            {
                Ip       = "10.3.5.95",
                UserName = "******",
                Password = "******"
            };

            config.UseMassTransit(busConfig, new[] { assambly });

            using (var scope = ObjectContainer.BeginLifetimeScope())
            {
                _bus = scope.Resolve <IBus>();
            }
        }
Esempio n. 5
0
 public BusFinder(IHttpService httpService, IDateFormatter dateFormatter, IOptions <BusConfig> options, ILinkBuilder linkBuilder)
 {
     this.httpService   = httpService;
     this.dateFormatter = dateFormatter;
     this.linkBuilder   = linkBuilder;
     config             = options.Value;
     availableStations  = GetAvailableStations().Result;
 }
        public static string RunCommand(Command command)
        {
            Stopwatch timeTaken = new Stopwatch();

            timeTaken.Start();

            BusLogger.LogWebInterfaceCommand(command);
            Task <CommandCallback> response = Task <CommandCallback> .Factory.StartNew(() =>
            {
                switch (command.CommandName)
                {
                case "get_command_log":
                    return(CommandCallback(command.CommandName, BusLogger.CommandLog));

                case "get_exception_log":
                    return(CommandCallback(command.CommandName, BusLogger.ExceptionLog));

                case "get_notifications":
                    return(CommandCallback(command.CommandName, NotificationManager.NotificationList));

                case "get_status":
                    return(CommandCallback(command.CommandName, BusMonitor.GetHappiness()));

                case "initial_load":
                    return(CommandCallback(command.CommandName, Bus.Model));

                case "mark_read":
                    NotificationManager.MarkNotificationAsRead(command.CommandParamaters[0]);
                    return(CommandCallback(command.CommandName, NotificationManager.NotificationList));

                case "reload_config":
                    BusFunctions.LoadConfiguration();
                    return(CommandCallback(command.CommandName, Bus.Model));

                case "toggle_door":
                    BusConfig.UpdateDoorStatus(Bus.Model, command.CommandParamaters[0]);
                    return(CommandCallback(command.CommandName, Bus.Model.Doors));

                default:
                    return(CommandCallback(null, null));
                }
            });

            timeTaken.Stop();

            response.Result.TimeTaken = new TimeTaken
            {
                Elapsed             = timeTaken.Elapsed,
                ElapsedMilliseconds = timeTaken.ElapsedMilliseconds,
                ElapsedTicks        = timeTaken.ElapsedTicks,
                IsRunning           = timeTaken.IsRunning
            };

            return(JsonConvert.SerializeObject(response.Result));
        }
Esempio n. 7
0
        private RebusConfigurer ConfigureRebus(RebusConfigurer rebusConfigurer, BusConfig busConfig)
        {
            rebusConfigurer.Routing(x =>
                                    x.TypeBased()
                                    .MapAssemblyOf <MyMessage>(busConfig.MainQueue)
                                    );

            rebusConfigurer.Transport(configurer => configurer.UseInMemoryTransport(new InMemNetwork(), busConfig.MainQueue));
            rebusConfigurer.Subscriptions(configurer => configurer.StoreInMemory());
            rebusConfigurer.Sagas(standardConfigurer => standardConfigurer.StoreInMemory());

            return(rebusConfigurer);
        }
Esempio n. 8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Configuration.ConfigureSerilog();
            //services.Configure<ConsulConfig>(Configuration.GetSection("consulConfig"));
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "Resizer", Version = "v1"
                });
                var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "Resizer.xml");
                c.IncludeXmlComments(filePath);
            });
            services.AddSingleton <IConsulClient, ConsulClient>(p => new ConsulClient(consulConfig =>
            {
                var address          = Configuration["consulConfig:address"];
                consulConfig.Address = new Uri(address);
            }));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddMassTransit(x => x.AddConsumer <ResizeConsumer>());

            BusConfig busConfig = new BusConfig(
                Configuration["rabbitmq:username"],
                Configuration["rabbitmq:password"],
                Configuration["rabbitmq:host"]
                );

            Console.WriteLine("--- RabbitMQ settings ---");
            Console.WriteLine("Username: "******"Password: "******"Host: " + busConfig.Host);

            services.AddSingleton(provider =>
            {
                return(Bus.Factory.CreateUsingRabbitMq(cfg =>
                {
                    var host = cfg.Host(busConfig.Host, h =>
                    {
                        h.Username(busConfig.Username);
                        h.Password(busConfig.Password);
                    });

                    cfg.ReceiveEndpoint(host, BusConfig.QUEUE_RESIZE, endpoint =>
                    {
                        endpoint.Consumer <ResizeConsumer>(provider);
                    });
                }));
            });
            services.AddHostedService <BusServiceHosted>();
        }
        public static void RegisterFrontendInjectables(this ContainerBuilder builder)
        {
            var connectionString = FrontendSettingsViaduc.Instance.SqlConnectionString;
            var sftpLicenseKey   = WebHelper.Settings["sftpLicenseKey"];

            builder.RegisterType <ExcelExportHelper>().AsSelf();
            builder.RegisterType <VeExportRecordHelper>().AsSelf();
            builder.RegisterType <ParameterHelper>().As <IParameterHelper>();
            builder.Register(c => c.Resolve <IParameterHelper>().GetSetting <DigitalisierungsbeschraenkungSettings>()).AsSelf();
            builder.Register(c => c.Resolve <IParameterHelper>().GetSetting <ManagementClientSettings>()).AsSelf();
            builder.Register(c => c.Resolve <IParameterHelper>().GetSetting <VerwaltungsausleiheSettings>()).AsSelf();
            builder.Register(c => c.Resolve <IParameterHelper>().GetSetting <AutomatischeBenachrichtigungAnKontrollstelle>()).AsSelf();
            builder.Register(c => c.Resolve <IParameterHelper>().GetSetting <FrontendDynamicTextSettings>()).AsSelf();

            builder.Register(c => ServerSettings.GetServerSettings <ElasticSettings>()).As <IElasticSettings>();

            builder.RegisterType <EntityProvider>().As <IEntityProvider>().InstancePerRequest();
            builder.RegisterType <ElasticClientProvider>().As <IElasticClientProvider>();
            builder.RegisterType <ElasticService>().As <IElasticService>().SingleInstance().ExternallyOwned();
            builder.RegisterType <PhysicalFileSystem>().As <IFileSystem>().SingleInstance();

            builder.RegisterType <ModelData>().As <IModelData>();
            builder.RegisterType <CmiSettings>().As <ICmiSettings>();
            builder.RegisterType <WebCmiConfigProvider>().As <IWebCmiConfigProvider>();
            builder.RegisterType <KontrollstellenInformer>().As <IKontrollstellenInformer>();

            builder.RegisterType <OrderManagerClient>().As <IPublicOrder>();
            builder.RegisterType <FileDownloadHelper>().As <IFileDownloadHelper>();

            builder.Register(c => FrontendSettingsViaduc.Instance).As <ITranslator>().SingleInstance().ExternallyOwned();
            builder.Register(c => new UsageAnalyzer(GetUsageSettings(), UsageType.Download)).As <IUsageAnalyzer>().SingleInstance().ExternallyOwned();

            builder.RegisterType <UserDataAccess>().As <IUserDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <CacheHelper>().As <ICacheHelper>().WithParameter(nameof(sftpLicenseKey), sftpLicenseKey);

            builder.Register(c => new UserAccessProvider(c.Resolve <IUserDataAccess>())).As <IUserAccessProvider>();
            builder.RegisterType <AuthenticationHelper>().As <IAuthenticationHelper>();

            builder.RegisterType <OrderDataAccess>().As <IOrderDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <ApplicationRoleUserDataAccess>().As <IApplicationRoleUserDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <ApplicationRoleDataAccess>().As <IApplicationRoleDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <DownloadTokenDataAccess>().As <IDownloadTokenDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <DownloadLogDataAccess>().As <IDownloadLogDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);

            builder.Register(c => BusConfig.RegisterDownloadAssetCallback()).As <IRequestClient <DownloadAssetRequest> >();
            builder.Register(c => BusConfig.RegisterGetAssetStatusCallback()).As <IRequestClient <GetAssetStatusRequest> >();
            builder.Register(c => BusConfig.RegisterPrepareAssetCallback()).As <IRequestClient <PrepareAssetRequest> >();
        }
Esempio n. 10
0
        public static string Run(Command command)
        {
            CommandCallback commandCallback = new CommandCallback();

            BusLogger.LogWebInterfaceCommand(command);

            switch (command.CommandName)
            {
            case "get_command_log":
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = BusLogger.CommandLog;
                return(JsonConvert.SerializeObject(commandCallback));

            case "get_exception_log":
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = BusLogger.ExceptionLog;
                return(JsonConvert.SerializeObject(commandCallback));

            case "get_notifications":
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = NotificationManager.NotificationList;
                return(JsonConvert.SerializeObject(commandCallback));

            case "initial_load":
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = Bus.Model;
                return(JsonConvert.SerializeObject(commandCallback));

            case "reload_config":
                Console.Clear();
                BusFunctions.LoadConfiguration();
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = Bus.Model;
                return(JsonConvert.SerializeObject(commandCallback));

            case "toggle_door":
                BusConfig.UpdateDoorStatus(Bus.Model, command.CommandParamaters[0]);
                commandCallback.Callback = command.CommandName;
                commandCallback.Data     = Bus.Model.Doors;
                return(JsonConvert.SerializeObject(commandCallback));
            }

            return(string.Empty);
        }
        public override void Start()
        {
            BusConfig _config = BusConfig.Current;

            Control = Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                var host = cfg.Host(new Uri(_config.Uri), h =>
                {
                    h.Username(_config.User);
                    h.Password(_config.Password);
                });

                if (_config.EndPointId != null)
                {
                    cfg.ReceiveEndpoint(host, _config.EndPointId, e => registerConsumers(e));
                }
            });
            Control.StartAsync();
        }
Esempio n. 12
0
        public static void Setup()
        {
            var busConfig = new BusConfig()
            {
                Ip       = "10.3.5.95",
                UserName = "******",
                Password = "******"
            };
            var assambly = Assembly.GetAssembly(typeof(Program));
            var config   = ESS.FW.Common.Configurations.Configuration.Create()
                           .UseAutofac()
                           .RegisterCommonComponents();

            config.SetDefault <ILoggerFactory, LoggerFactory>();

            config.UseMassTransit(busConfig, new[] { assambly });

            using (var scope = ObjectContainer.BeginLifetimeScope())
            {
                _bus = scope.Resolve <ESS.FW.Common.ServiceBus.IBus>();
            }
        }
        public static void RegisterManagementInjectables(this ContainerBuilder builder)
        {
            builder.RegisterType <OrderManagerClient>().AsSelf();
            builder.RegisterType <ExcelExportHelper>().AsSelf();
            builder.RegisterType <CacheHelper>().As <ICacheHelper>().WithParameter("sftpLicenseKey", WebHelper.Settings["sftpLicenseKey"]);

            var connectionString = ManagementSettingsViaduc.Instance.SqlConnectionString;

            builder.RegisterType <UserDataAccess>().As <IUserDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <ApplicationRoleDataAccess>().As <IApplicationRoleDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <ApplicationRoleUserDataAccess>().As <IApplicationRoleUserDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <AblieferndeStelleDataAccess>().As <IAblieferndeStelleDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <AblieferndeStelleTokenDataAccess>().As <IAblieferndeStelleTokenDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <DownloadTokenDataAccess>().As <IDownloadTokenDataAccess>().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);
            builder.RegisterType <NewsDataAccess>().AsSelf().InstancePerRequest().WithParameter(nameof(connectionString), connectionString);

            builder.Register(c => BusConfig.CreateGetElasticLogRecordsRequestClient()).As <IRequestClient <GetElasticLogRecordsRequest> >();
            builder.Register(c => BusConfig.GetExternalContentClient()).As <IRequestClient <SyncInfoForReportRequest> >();
            builder.Register(c => BusConfig.RegisterDownloadAssetCallback()).As <IRequestClient <DownloadAssetRequest> >();
            builder.Register(c => BusConfig.CreateDoesExistInCacheClient()).As <IRequestClient <DoesExistInCacheRequest> >();

            builder.RegisterType <AuthenticationHelper>().As <IAuthenticationHelper>();
            builder.RegisterType <ParameterHelper>().As <IParameterHelper>();
            builder.RegisterType <MailHelper>().As <IMailHelper>();

            builder.RegisterType <CmiSettings>().As <ICmiSettings>();
            builder.RegisterType <WebCmiConfigProvider>().As <IWebCmiConfigProvider>();

            builder.RegisterType <OrderManagerClient>().As <IPublicOrder>();
            builder.RegisterType <FileDownloadHelper>().As <IFileDownloadHelper>();
            builder.RegisterType <ReportExternalContentHelper>().As <IReportExternalContentHelper>();
            builder.RegisterType <AbbyyProgressInfo>().SingleInstance().AsSelf();

            // register all the consumers
            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
            .AssignableTo <IConsumer>()
            .AsSelf();
        }
Esempio n. 14
0
        public RoutDialog(ITelegramBotClient botClient)
        {
            var blaBlaCarConfig = new BlaBlaCarConfig
            {
                ApiUrl =
                    "https://public-api.blablacar.com/api/v2/trips?locale=uk_UA&cur=UAH&fn={from}&tn={to}&db={date}",
                ApiKey = "9bd3dc5d46c34a0cb1ac951322208f77"
            };
            var busConfig = new BusConfig
            {
                ApiUrl =
                    "http://ticket.bus.com.ua/order/forming_bn?point_from={from}&point_to={to}&date={date}&date_add=0&fn=round_search",
                BookingUrl =
                    "http://ticket.bus.com.ua/order/forming_bn?round_num={round_num}&count=1&email={email}&reservation=&bs_code={bus_code}&point_from={from_code}&point_to={to_code}&local_point_from={local_from_code}&local_point_to={local_to_code}&date={date}&date_add=0&date_dep={date}&fn=check_places&ya=0&submit=%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0+%D0%BC%D0%B5%D1%81%D1%82+%D0%B8+%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8",
                SiteUrl = "http://ticket.bus.com.ua/"
            };

            blaBlaCarFinder = new BlaBlaCarFinder(new HttpService(), new DateFormatter(), Options.Create(blaBlaCarConfig));
            busFinder       = new BusFinder(new HttpService(), new DateFormatter(), Options.Create(busConfig),
                                            new LinkBuilder(new DateFormatter(), Options.Create(busConfig)));
            dialogFlowService = new DialogFlowService();
            this.botClient    = botClient;
        }
Esempio n. 15
0
 public IBus Init(BusConfig config)
 {
     _config = config;
     return(Init());
 }
Esempio n. 16
0
 public RabbitBus(ILogger <IBus> logger, IOptions <BusConfig> config)
 {
     _logger = logger;
     _config = config?.Value;
 }