public async Task GetItemAll() { var unitOfWork = Substitute.For <IUnitOfWork>(); var rep = Substitute.For <IItemRepository>(); var userContext = new CNCLibUserContext(); var ctrl = new ItemManager(unitOfWork, rep, userContext, Mapper); var itemEntity = new[] { new ItemEntity { ItemId = 1, Name = "Test1", UserId = userContext.UserId }, new ItemEntity { ItemId = 2, Name = "Test2", UserId = userContext.UserId } }; rep.GetByUser(userContext.UserId).Returns(itemEntity); var all = (await ctrl.GetAll()).ToArray(); all.Should().HaveCount(2); new { ItemId = 1, Name = "Test1" }.Should().BeEquivalentTo(all.FirstOrDefault(), options => options.ExcludingMissingMembers()); }
public async Task GetMachinesOne() { var unitOfWork = Substitute.For <IUnitOfWork>(); var rep = Substitute.For <IMachineRepository>(); var repC = Substitute.For <IConfigurationRepository>(); var userContext = new CNCLibUserContext(); var ctrl = new MachineManager(unitOfWork, rep, repC, userContext, Mapper); var machineEntity = new[] { new Machine { MachineId = 1, Name = "Maxi", BufferSize = 115200, UserId = userContext.UserId, MachineCommands = new List <MachineCommand>(), MachineInitCommands = new MachineInitCommand[0] } }; rep.GetByUser(userContext.UserId).Returns(machineEntity); var machines = (await ctrl.GetAll()).ToArray(); machines.Length.Should().Be(1); machines[0].MachineId.Should().Be(1); machines[0].Name.Should().Be("Maxi"); machines[0].BufferSize.Should().Be(115200); machines[0].MachineCommands.Should().NotBeNull(); machines[0].MachineInitCommands.Should().NotBeNull(); machines[0].MachineCommands.Count().Should().Be(0); machines[0].MachineInitCommands.Count().Should().Be(0); }
private void AppStartup(object sender, StartupEventArgs e) { string userprofilepath = Environment.GetEnvironmentVariable(@"USERPROFILE"); AppDomain.CurrentDomain.SetData("DataDirectory", userprofilepath); string dbfile = userprofilepath + @"\CNCLib.db"; GlobalDiagnosticsContext.Set("connectionString", $"Data Source={dbfile}"); LogManager.ThrowExceptions = true; Logger logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); LogManager.ThrowExceptions = false; FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); Dependency.Initialize(new LiveDependencyProvider()); Dependency.Container.RegisterFrameWorkTools(); Dependency.Container.RegisterRepository(); Dependency.Container.RegisterLogic(); Dependency.Container.RegisterLogicClient(); Dependency.Container.RegisterSerialCommunication(); Dependency.Container.RegisterServiceAsLogic(); Dependency.Container.RegisterCNCLibWpf(); Dependency.Container.RegisterMapper(new MapperConfiguration(cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); })); var userContext = new CNCLibUserContext(); Dependency.Container.RegisterInstance((ICNCLibUserContext)userContext); // Open Database here try { Repository.SqLite.MigrationCNCLibContext.InitializeDatabase(dbfile, false, false); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show($"Cannot create/connect database in {dbfile} \n\r" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }
private void AppStartup(object sender, StartupEventArgs e) { GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib.Web/logs"); _logger.Info(@"Starting ..."); FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); ICNCLibUserContext userContext = new CNCLibUserContext(); Dependency.Initialize(new LiveDependencyProvider()) .RegisterFrameWorkTools() .RegisterFrameWorkLogging() .RegisterLogicClient() .RegisterSerialCommunication() .RegisterServiceAsWebAPI() .RegisterCNCLibWpf() .RegisterMapper( new MapperConfiguration( cfg => { cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); })) .RegisterInstance(userContext); // Open WebAPI Connection // bool ok = Task.Run( async() => { try { using (var controller = Dependency.Resolve <IMachineService>()) { var m = await controller.Get(1000000); /* * if (m == -1) * { * throw new ArgumentException("cannot connect to service"); * } */ } return(true); } catch (Exception ex) { MessageBox.Show($"Cannot connect to WebAPI: {ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); return(false); } }).ConfigureAwait(true).GetAwaiter().GetResult(); }
private void AppStartup(object sender, StartupEventArgs e) { GlobalDiagnosticsContext.Set("connectionString", MigrationCNCLibContext.ConnectString); LogManager.ThrowExceptions = true; Logger logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); LogManager.ThrowExceptions = false; FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); Dependency.Initialize(new LiveDependencyProvider()); Dependency.Container.RegisterFrameWorkTools(); Dependency.Container.RegisterRepository(); Dependency.Container.RegisterLogic(); Dependency.Container.RegisterLogicClient(); Dependency.Container.RegisterSerialCommunication(); Dependency.Container.RegisterServiceAsLogic(); Dependency.Container.RegisterCNCLibWpf(); Dependency.Container.RegisterMapper(new MapperConfiguration(cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); })); var userContext = new CNCLibUserContext(); Dependency.Container.RegisterInstance((ICNCLibUserContext)userContext); // string sqlconnectstring = @"Data Source = (LocalDB)\MSSQLLocalDB; Initial Catalog = CNCLib; Integrated Security = True"; string sqlconnectstring = null; // Open Database here try { Repository.SqlServer.MigrationCNCLibContext.InitializeDatabase(sqlconnectstring, false, false); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show("Cannot connect to database" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }
private void AppStartup(object sender, StartupEventArgs e) { string connectString = SqlServerDatabaseTools.ConnectString; GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib.Sql/logs"); GlobalDiagnosticsContext.Set("connectionString", connectString); try { #if DEBUG LogManager.ThrowExceptions = true; #endif NLog.Logger logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); #if DEBUG LogManager.ThrowExceptions = false; #endif } catch (SqlException) { // ignore Sql Exception } FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); var userContext = new CNCLibUserContext(); Dependency.Initialize(new LiveDependencyProvider()) .RegisterFrameWorkTools() .RegisterFrameWorkLogging() .RegisterRepository(SqlServerDatabaseTools.OptionBuilder) .RegisterLogic() .RegisterLogicClient() .RegisterSerialCommunication() .RegisterServiceAsLogic() .RegisterCNCLibWpf() .RegisterMapper( new MapperConfiguration( cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); })) .RegisterInstance((ICNCLibUserContext)userContext); // Open Database here try { CNCLibContext.InitializeDatabase2(false, false); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show("Cannot connect to database" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }
private void AppStartup(object sender, StartupEventArgs e) { var userContextRW = new CNCLibUserContext(); ICNCLibUserContext userContext = userContextRW; var localizationCollector = new LocalizationCollector(); var moduleInit = new InitializationManager(); moduleInit.Add(new Framework.Tools.ModuleInitializer()); moduleInit.Add(new Framework.Arduino.SerialCommunication.ModuleInitializer()); moduleInit.Add(new Framework.Logic.ModuleInitializer() { MapperConfiguration = new MapperConfiguration( cfg => { cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); }) }); moduleInit.Add(new CNCLib.Logic.Client.ModuleInitializer()); moduleInit.Add(new CNCLib.WpfClient.ModuleInitializer()); moduleInit.Add(new CNCLib.Service.WebAPI.ModuleInitializer() { ConfigureHttpClient = httpClient => { HttpClientHelper.PrepareHttpClient(httpClient, @"https://cnclib.azurewebsites.net"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Base64Helper.StringToBase64($"{userContextRW.UserName}:{userContextRW.Password}")); } }); GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib.Web/logs"); _logger.Info(@"Starting ..."); FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); AppService.ServiceCollection = new ServiceCollection(); AppService.ServiceCollection .AddTransient <ILoggerFactory, LoggerFactory>() .AddTransient(typeof(ILogger <>), typeof(Logger <>)) .AddSingleton(userContext); moduleInit.Initialize(AppService.ServiceCollection, localizationCollector); AppService.BuildServiceProvider(); // Open WebAPI Connection // bool ok = Task.Run( async() => { try { await userContextRW.InitUserContext(userContextRW.UserName); using (var scope = AppService.ServiceProvider.CreateScope()) { var controller = scope.ServiceProvider.GetRequiredService <IMachineService>(); var m = await controller.Get(1000000); return(true); } } catch (Exception ex) { MessageBox.Show($"Cannot connect to WebAPI: {ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); return(false); } }).ConfigureAwait(true).GetAwaiter().GetResult(); }
public async Task GetMachinesMany() { var unitOfWork = Substitute.For <IUnitOfWork>(); var rep = Substitute.For <IMachineRepository>(); var repC = Substitute.For <IConfigurationRepository>(); var userContext = new CNCLibUserContext(); var ctrl = new MachineManager(unitOfWork, rep, repC, userContext, Mapper); var machineEntity = new[] { new Machine { MachineId = 1, Name = "Maxi", BufferSize = 115200, MachineCommands = new List <MachineCommand>(), MachineInitCommands = new List <MachineInitCommand>(), UserId = userContext.UserId }, new Machine { MachineId = 2, Name = "Maxi", BufferSize = 115200, UserId = userContext.UserId, MachineCommands = new List <MachineCommand>() { new MachineCommand { MachineId = 2, MachineCommandId = 1, CommandName = "Test", CommandString = "f" } }, MachineInitCommands = new List <MachineInitCommand>() { new MachineInitCommand { MachineId = 2, MachineInitCommandId = 1, SeqNo = 0, CommandString = "f" } } } }; rep.GetByUser(userContext.UserId).Returns(machineEntity); var machines = (await ctrl.GetAll()).ToArray(); machines.Length.Should().Be(2); machines[0].MachineId.Should().Be(1); machines[0].Name.Should().Be("Maxi"); machines[0].BufferSize.Should().Be(115200); machines[1].MachineCommands.Count().Should().Be(1); machines[1].MachineInitCommands.Count().Should().Be(1); machines[0].MachineCommands.Count().Should().Be(0); machines[0].MachineInitCommands.Count().Should().Be(0); machines[1].MachineCommands.First().CommandName.Should().Be("Test"); machines[1].MachineCommands.First().CommandString.Should().Be("f"); machines[1].MachineInitCommands.First().SeqNo.Should().Be(0); machines[1].MachineInitCommands.First().CommandString.Should().Be("f"); }
private void AppStartup(object sender, StartupEventArgs e) { var localizationCollector = new LocalizationCollector(); var moduleInit = new InitializationManager(); moduleInit.Add(new Framework.Tools.ModuleInitializer()); moduleInit.Add(new Framework.Arduino.SerialCommunication.ModuleInitializer()); moduleInit.Add(new Framework.Logic.ModuleInitializer() { MapperConfiguration = new MapperConfiguration( cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); }) }); moduleInit.Add(new CNCLib.Logic.ModuleInitializer()); moduleInit.Add(new CNCLib.Logic.Client.ModuleInitializer()); moduleInit.Add(new CNCLib.Repository.ModuleInitializer() { OptionsAction = SqlServerDatabaseTools.OptionBuilder }); moduleInit.Add(new CNCLib.Service.Logic.ModuleInitializer()); moduleInit.Add(new CNCLib.WpfClient.ModuleInitializer()); string connectString = SqlServerDatabaseTools.ConnectString; GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib.Sql/logs"); GlobalDiagnosticsContext.Set("connectionString", connectString); try { #if DEBUG LogManager.ThrowExceptions = true; #endif NLog.Logger logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); #if DEBUG LogManager.ThrowExceptions = false; #endif } catch (SqlException) { // ignore Sql Exception } FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); var userContext = new CNCLibUserContext(CNCLibConst.AdminUser); AppService.ServiceCollection = new ServiceCollection(); AppService.ServiceCollection .AddTransient <ILoggerFactory, LoggerFactory>() .AddTransient(typeof(ILogger <>), typeof(Logger <>)) .AddSingleton((ICNCLibUserContext)userContext); moduleInit.Initialize(AppService.ServiceCollection, localizationCollector); AppService.BuildServiceProvider(); // Open Database here try { CNCLibContext.InitializeDatabase(AppService.ServiceProvider); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show("Cannot connect to database" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }
private void AppStartup(object sender, StartupEventArgs e) { string userProfilePath = Environment.GetEnvironmentVariable(@"USERPROFILE"); AppDomain.CurrentDomain.SetData("DataDirectory", userProfilePath); string dbFile = userProfilePath + @"\CNCLib.db"; SqliteDatabaseTools.DatabaseFile = dbFile; string connectString = SqliteDatabaseTools.ConnectString; GlobalDiagnosticsContext.Set("logDir", $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}/CNCLib/logs"); GlobalDiagnosticsContext.Set("connectionString", connectString); LogManager.ThrowExceptions = true; var logger = LogManager.GetLogger("foo"); _logger.Info(@"Starting ..."); LogManager.ThrowExceptions = false; FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); var userContext = new CNCLibUserContext("global"); AppService.ServiceCollection = new ServiceCollection(); AppService.ServiceCollection .AddFrameWorkTools() .AddTransient <ILoggerFactory, LoggerFactory>() .AddTransient(typeof(ILogger <>), typeof(Logger <>)) .AddRepository(SqliteDatabaseTools.OptionBuilder) .AddLogic() .AddLogicClient() .AddSerialCommunication() .AddServiceAsLogic() .AddCNCLibWpf() .AddMapper( new MapperConfiguration( cfg => { cfg.AddProfile <LogicAutoMapperProfile>(); cfg.AddProfile <WpfAutoMapperProfile>(); cfg.AddProfile <GCodeGUIAutoMapperProfile>(); })) .AddSingleton((ICNCLibUserContext)userContext); AppService.BuildServiceProvider(); // Open Database here try { CNCLibContext.InitializeDatabase2(); } catch (Exception ex) { _logger.Error(ex); MessageBox.Show($"Cannot create/connect database in {dbFile} \n\r" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); Current.Shutdown(); } var task = Task.Run(async() => await userContext.InitUserContext()); while (!task.IsCompleted) { Task.Yield(); } }