public static void StartService(string serviceHostName, string servicePort, string modulKassaBaseAddress, IEnumerable <CashBox> cashboxes) { _logger.Info("Запуск службы фискализации и печати кассовых чеков..."); var parametersProvider = new ParametersProvider(); var fiscalizationWorker = new FiscalizationWorker( new OrderRepository(), new SalesReceiptSender(modulKassaBaseAddress), new OrderParametersProvider(parametersProvider), cashboxes ); fiscalizationWorker.Start(); _logger.Info("Служба фискализации запущена"); var salesReceiptsInstanceProvider = new SalesReceiptsInstanceProvider( new BaseParametersProvider(parametersProvider), new OrderRepository(), new OrderParametersProvider(parametersProvider) ); WebServiceHost salesReceiptsHost = new SalesReceiptsServiceHost(salesReceiptsInstanceProvider); salesReceiptsHost.AddServiceEndpoint( typeof(ISalesReceiptsService), new WebHttpBinding(), $"http://{serviceHostName}:{servicePort}/SalesReceipts" ); salesReceiptsHost.Open(); _logger.Info("Запущена служба мониторинга отправки чеков"); }
public DeliveryPointsManagementView() { this.Build(); treeDeliveryPoints.ColumnsConfig = FluentColumnsConfig <DeliveryPoint> .Create() .AddColumn("Адрес").AddTextRenderer(node => node.CompiledAddress).WrapMode(Pango.WrapMode.WordChar).WrapWidth(1000) .AddColumn("Номер").AddTextRenderer(x => x.Id.ToString()) .AddColumn("") .RowCells().AddSetter <CellRendererText>((c, n) => c.Foreground = n.IsActive ? "black" : "red") .Finish(); _canDeleteByPresetPermission = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete_counterparty_and_deliverypoint"); _permissionResult = ServicesConfig.CommonServices.CurrentPermissionService.ValidateEntityPermission(typeof(DeliveryPoint)); buttonAdd.Sensitive = _permissionResult.CanCreate; if (_permissionResult.CanRead) { treeDeliveryPoints.RowActivated += (o, args) => buttonEdit.Click(); } treeDeliveryPoints.Selection.Changed += OnSelectionChanged; IParametersProvider parametersProvider = new ParametersProvider(); IFiasApiParametersProvider fiasApiParametersProvider = new FiasApiParametersProvider(parametersProvider); IFiasApiClient fiasApiClient = new FiasApiClient(fiasApiParametersProvider.FiasApiBaseUrl, fiasApiParametersProvider.FiasApiToken); _deliveryPointViewModelFactory = new DeliveryPointViewModelFactory(fiasApiClient); }
public FixedPricesDialogOpener() { IParametersProvider parametersProvider = new ParametersProvider(); IFiasApiParametersProvider fiasApiParametersProvider = new FiasApiParametersProvider(parametersProvider); IFiasApiClient fiasApiClient = new FiasApiClient(fiasApiParametersProvider.FiasApiBaseUrl, fiasApiParametersProvider.FiasApiToken); _deliveryPointViewModelFactory = new DeliveryPointViewModelFactory(fiasApiClient); }
public DeliveryPointJournalFactory(DeliveryPointJournalFilterViewModel deliveryPointJournalFilter = null) { _deliveryPointJournalFilter = deliveryPointJournalFilter; IParametersProvider parametersProvider = new ParametersProvider(); IFiasApiParametersProvider fiasApiParametersProvider = new FiasApiParametersProvider(parametersProvider); IFiasApiClient fiasApiClient = new FiasApiClient(fiasApiParametersProvider.FiasApiBaseUrl, fiasApiParametersProvider.FiasApiToken); _deliveryPointViewModelFactory = new DeliveryPointViewModelFactory(fiasApiClient); }
public IOrganizationProvider CreateOrderOrganizationProvider() { var parametersProvider = new ParametersProvider(); var organizationParametersProvider = new OrganizationParametersProvider(parametersProvider); var orderParametersProvider = new OrderParametersProvider(parametersProvider); var geographicGroupParametersProvider = new GeographicGroupParametersProvider(parametersProvider); return(new Stage2OrganizationProvider( organizationParametersProvider, orderParametersProvider, geographicGroupParametersProvider)); }
public DeliveryPointPanelView(ICommonServices commonServices) { if (commonServices == null) { throw new ArgumentNullException(nameof(commonServices)); } Build(); _deliveryPointPermissionResult = commonServices.CurrentPermissionService.ValidateEntityPermission(typeof(DeliveryPoint)); _orderPermissionResult = commonServices.CurrentPermissionService.ValidateEntityPermission(typeof(Order)); IParametersProvider parametersProvider = new ParametersProvider(); IFiasApiParametersProvider fiasApiParametersProvider = new FiasApiParametersProvider(parametersProvider); IFiasApiClient fiasApiClient = new FiasApiClient(fiasApiParametersProvider.FiasApiBaseUrl, fiasApiParametersProvider.FiasApiToken); _deliveryPointViewModelFactory = new DeliveryPointViewModelFactory(fiasApiClient); Configure(); }
private void RegisterServices(IServiceCollection services) { // 1. Enable caching. services.AddConcurrency(opt => opt.UseInMemory()); // 2. Enable DB store. services.AddSimpleIdServerUmaInMemory(); // 3. Add uma core services.AddSimpleIdServerUmaCore(); // 4. Enable logging. var parametersProvider = new ParametersProvider("http://localhost"); services.AddLogging(); services.AddTransient <IHostingProvider, HostingProvider>(); services.AddSingleton <IParametersProvider>(parametersProvider); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddTransient <IUmaServerEventSource, UmaServerEventSource>(); }
public static void Main(string[] args) { CultureInfo.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU"); Application.Init(); QSMain.GuiThread = System.Threading.Thread.CurrentThread; applicationInfo = new ApplicationVersionInfo(); #region Первоначальная настройка обработки ошибок SingletonErrorReporter.Initialize(ReportWorker.GetReportService(), applicationInfo, new LogService(), null, false, null); var errorMessageModelFactoryWithoutUserService = new DefaultErrorMessageModelFactory(SingletonErrorReporter.Instance, null, null); var exceptionHandler = new DefaultUnhandledExceptionHandler(errorMessageModelFactoryWithoutUserService, applicationInfo); exceptionHandler.SubscribeToUnhandledExceptions(); exceptionHandler.GuiThread = System.Threading.Thread.CurrentThread; #endregion //FIXME Удалить после того как будет удалена зависимость от библиотеки QSProjectLib QSMain.ProjectPermission = new System.Collections.Generic.Dictionary <string, UserPermission>(); CreateProjectParam(); ConfigureViewModelWidgetResolver(); ConfigureJournalColumnsConfigs(); QSMain.SetupFromArgs(args); QS.Project.Search.GtkUI.SearchView.QueryDelay = 1500; Gtk.Settings.Default.SetLongProperty("gtk-button-images", 1, ""); // Создаем окно входа Login LoginDialog = new Login(); LoginDialog.Logo = Gdk.Pixbuf.LoadFromResource("Vodovoz.icons.logo.png"); LoginDialog.SetDefaultNames("Vodovoz"); LoginDialog.DefaultLogin = "******"; LoginDialog.DefaultServer = "sql.vod.qsolution.ru"; LoginDialog.UpdateFromGConf(); ResponseType LoginResult; LoginResult = (ResponseType)LoginDialog.Run(); if (LoginResult == ResponseType.DeleteEvent || LoginResult == ResponseType.Cancel) { return; } LoginDialog.Destroy(); PerformanceHelper.StartMeasurement("Замер запуска приложения"); GetPermissionsSettings(); //Настройка базы var applicationConfigurator = new ApplicationConfigurator(); applicationConfigurator.ConfigureOrm(); applicationConfigurator.CreateApplicationConfig(); PerformanceHelper.AddTimePoint(logger, "Закончена настройка базы"); VodovozGtkServicesConfig.CreateVodovozDefaultServices(); var parametersProvider = new ParametersProvider(); parametersProvider.RefreshParameters(); #region Настройка обработки ошибок c параметрами из базы и сервисами var baseParameters = new BaseParametersProvider(parametersProvider); SingletonErrorReporter.Initialize( ReportWorker.GetReportService(), applicationInfo, new LogService(), LoginDialog.BaseName, LoginDialog.BaseName == baseParameters.GetDefaultBaseForErrorSend(), baseParameters.GetRowCountForErrorLog() ); var errorMessageModelFactoryWithUserService = new DefaultErrorMessageModelFactory(SingletonErrorReporter.Instance, ServicesConfig.UserService, UnitOfWorkFactory.GetDefaultFactory); exceptionHandler.InteractiveService = ServicesConfig.InteractiveService; exceptionHandler.ErrorMessageModelFactory = errorMessageModelFactoryWithUserService; //Настройка обычных обработчиков ошибок. exceptionHandler.CustomErrorHandlers.Add(CommonErrorHandlers.MySqlException1055OnlyFullGroupBy); exceptionHandler.CustomErrorHandlers.Add(CommonErrorHandlers.MySqlException1366IncorrectStringValue); exceptionHandler.CustomErrorHandlers.Add(CommonErrorHandlers.NHibernateFlushAfterException); exceptionHandler.CustomErrorHandlers.Add(ErrorHandlers.NHibernateStaleObjectStateExceptionHandler); exceptionHandler.CustomErrorHandlers.Add(ErrorHandlers.MySqlExceptionConnectionTimeoutHandler); exceptionHandler.CustomErrorHandlers.Add(ErrorHandlers.MySqlExceptionAuthHandler); exceptionHandler.CustomErrorHandlers.Add(ErrorHandlers.SocketTimeoutException); #endregion passwordValidator = new PasswordValidator( new PasswordValidationSettingsFactory(UnitOfWorkFactory.GetDefaultFactory).GetPasswordValidationSettings() ); //Настройка карты GMapProvider.UserAgent = String.Format("{0}/{1} used GMap.Net/{2} ({3})", applicationInfo.ProductName, applicationInfo.Version.VersionToShortString(), Assembly.GetAssembly(typeof(GMapProvider)).GetName().Version.VersionToShortString(), Environment.OSVersion.VersionString ); GMapProvider.Language = GMap.NET.LanguageType.Russian; PerformanceHelper.AddTimePoint(logger, "Закончена настройка карты."); DatePicker.CalendarFontSize = 16; DateRangePicker.CalendarFontSize = 16; OsmWorker.ServiceHost = "osm.vod.qsolution.ru"; OsmWorker.ServicePort = 7073; QS.Osm.Osrm.OsrmMain.ServerUrl = "http://osrm.vod.qsolution.ru:5000"; PerformanceHelper.StartPointsGroup("Главное окно"); var baseVersionChecker = new CheckBaseVersion(applicationInfo, new ParametersService(QS.Project.DB.Connection.ConnectionDB)); if (baseVersionChecker.Check()) { ServicesConfig.CommonServices.InteractiveService.ShowMessage(ImportanceLevel.Warning, baseVersionChecker.TextMessage, "Несовпадение версии"); return; } QSMain.CheckServer(null); // Проверяем настройки сервера PerformanceHelper.AddTimePoint("Закончена загрузка параметров базы и проверка версии."); AutofacClassConfig(); PerformanceHelper.AddTimePoint("Закончена настройка AutoFac."); if (QSMain.User.Login == "root") { string Message = "Вы зашли в программу под администратором базы данных. У вас есть только возможность создавать других пользователей."; MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, Message); md.Run(); md.Destroy(); UsersDialog usersDlg = new UsersDialog(ServicesConfig.InteractiveService); usersDlg.Show(); usersDlg.Run(); usersDlg.Destroy(); return; } if (ChangePassword(applicationConfigurator) && CanLogin()) { StartMainWindow(LoginDialog.BaseName, applicationConfigurator, parametersProvider); } else { return; } PerformanceHelper.EndPointsGroup(); PerformanceHelper.AddTimePoint(logger, "Закончен старт SAAS. Конец загрузки."); QSSaaS.Session.StartSessionRefresh(); PerformanceHelper.AddTimePoint(logger, "Закончен старт SAAS. Конец загрузки."); PerformanceHelper.Main.PrintAllPoints(logger); Application.Run(); QSSaaS.Session.StopSessionRefresh(); ClearTempDir(); }
public void RegisterServices(IServiceCollection services) { var cachingType = Configuration["Caching:Type"]; var dbType = Configuration["Db:Type"]; var isLogFileEnabled = bool.Parse(Configuration["Log:File:Enabled"]); var isElasticSearchEnabled = bool.Parse(Configuration["Log:Elasticsearch:Enabled"]); var parametersProvider = new ParametersProvider(Configuration["OpenId:WellKnownConfiguration"]); services.AddSimpleIdServerUmaCore(); // 1. Enable caching. if (string.Equals(cachingType, "REDIS", StringComparison.CurrentCultureIgnoreCase)) { services.AddConcurrency(opt => opt.UseRedis(o => { o.Configuration = Configuration["Caching:ConnectionString"]; o.InstanceName = Configuration["Caching:InstanceName"]; })); } else { services.AddConcurrency(opt => opt.UseInMemory()); } // 2. Enable database. if (string.Equals(dbType, "SQLSERVER", StringComparison.CurrentCultureIgnoreCase)) { services.AddSimpleIdServerUmaSqlServer(Configuration["Db:ConnectionString"]); } else if (string.Equals(dbType, "POSTGRES", StringComparison.CurrentCultureIgnoreCase)) { services.AddSimpleIdServerUmaPostgresql(Configuration["Db:ConnectionString"]); } else { services.AddSimpleIdServerUmaInMemory(); } // 3. Enable logging. var logger = new LoggerConfiguration() .MinimumLevel.Information() .Enrich.FromLogContext() .WriteTo.ColoredConsole(); if (isLogFileEnabled) { logger.WriteTo.RollingFile(Configuration["Log:File:PathFormat"]); } if (isElasticSearchEnabled) { logger.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(Configuration["Log:Elasticsearch:Url"])) { AutoRegisterTemplate = true, IndexFormat = "umaserver-{0:yyyy.MM.dd}", TemplateName = "uma-events-template" }); } Func <LogEvent, bool> serilogFilter = (e) => { var ctx = e.Properties["SourceContext"]; var contextValue = ctx.ToString() .TrimStart('"') .TrimEnd('"'); return(contextValue.StartsWith("SimpleIdentityServer") || e.Level == LogEventLevel.Error || e.Level == LogEventLevel.Fatal); }; var log = logger.Filter.ByIncludingOnly(serilogFilter) .CreateLogger(); Log.Logger = log; services.AddLogging(); services.AddTransient <IHostingProvider, HostingProvider>(); services.AddSingleton <IParametersProvider>(parametersProvider); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddTransient <IUmaServerEventSource, UmaServerEventSource>(); }