public PlayerWindow() { DependencyUtility.BuildUp(this); InitializeComponent(); this.Left = Properties.Settings.Default.Left; this.Top = Properties.Settings.Default.Top; new DraggableWindow(this).DragFinished += (s, e) => { Properties.Settings.Default.Left = this.Left; Properties.Settings.Default.Top = this.Top; Properties.Settings.Default.Save(); }; musicSelectControl.Bind(musicPlayer.GetList().ToList()); musicSelectControl.MusicChanged += musicItem => { musicPlayer.ChangeMusic(musicItem); musicPlayer.Play(); }; pauseButton.Visibility = Visibility.Hidden; musicPlayer.MusicPlayed += musicPlayer_MusicPlayed; musicPlayer.MusicPaused += musicPlayer_MusicStopped; musicPlayer.MusicChanged += musicPlayer_MusicChanged; musicPlayer.Show += MusicPlayer_Show; musicPlayer.TrackAdded += MusicPlayer_TrackAdded; musicPlayer.TrackDeleted += MusicPlayer_TrackDeleted; trackProgress.BindData(musicPlayer); musicPlayer_MusicChanged(null); }
static void Main(string[] args) { //Create our log wrapper and events ILogger logger = new Logger(); logger.OnError += OnError; logger.OnDebug += OnDebug; logger.OnWarn += OnWarn; logger.OnInfo += OnInfo; //Create our dependency utility and register the logger IDependencyUtility dependencyUtility = new DependencyUtility(); dependencyUtility.Register <ILogger>(logger); //Set port and host int port = Convert.ToInt32(1337); IPAddress host = IPAddress.Parse("0.0.0.0"); //Start the server using (IServer server = new WebSocketServer("MyServerName", host, port, dependencyUtility)) { //Start listening and blocking the main thread server.Run(); } }
/// <summary> /// Registers the connection. /// </summary> /// <param name="connection">The connection.</param> public override void RegisterConnection(IWebSocketConnection connection) { if (_connections == null) { _connections = DependencyUtility.Resolve <IWebSocketConnectionManager>(); } _queueHandler.CreateQueue(QUEUE_EXCHANGE_ID, connection.ClientIdentifier); _queueHandler.AddEvent(QUEUE_EXCHANGE_ID, connection.ClientIdentifier, OnDequeue); }
public void DependencyUtilityRegistersAndResolvesInterfaces() { Guid id = Guid.NewGuid(); IDependencyUtility utility = new DependencyUtility(); utility.Register <ITestInterface>(new TestClass(id)); ITestInterface resolvedObject = utility.Resolve <ITestInterface>(); Assert.Equal(id, resolvedObject.Id); }
public void RegisterDependencies(IUnityContainer container) { DependencyUtility.SetContainer(container); container.RegisterFactory <ILogger>(m => { ILogger log = new LoggerConfiguration() .ReadFrom.Configuration(Configuration) .Enrich.FromLogContext() .WriteTo.File($@"{Directory.GetCurrentDirectory()}\log\log.txt", rollingInterval: RollingInterval.Day) .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}") .CreateLogger(); return(log); }, new ContainerControlledLifetimeManager()); }
public void RemoveDeadConnectionsCleansUpCorrectly() { Mock <IThreadHelper> threadHelper = new Mock <IThreadHelper>(); Mock <TcpClient> client = new Mock <TcpClient>(); IDependencyUtility utility = new DependencyUtility(); utility.Register <IThreadHelper>(threadHelper.Object); IWebSocketConnectionManager connectionManager = new WebSocketConnectionManager(utility); connectionManager.RegisterConnection(client.Object); connectionManager.RemoveDeadConnections(); Assert.Equal(0, connectionManager.TotalConnections); }
public void ConnectionManagerRegistersAndStartsClientThread() { Mock <IThreadHelper> threadHelper = new Mock <IThreadHelper>(); Mock <TcpClient> client = new Mock <TcpClient>(); IDependencyUtility utility = new DependencyUtility(); utility.Register <IThreadHelper>(threadHelper.Object); IWebSocketConnectionManager connectionManager = new WebSocketConnectionManager(utility); connectionManager.RegisterConnection(client.Object); threadHelper.Verify(x => x.CreateAndRun(It.IsAny <ThreadStart>()), Times.Once); Assert.Equal(1, connectionManager.TotalConnections); }
private void WriteExecuteDelete(Action <IConfigurationHandler> action, string json) { IDependencyUtility dependencyUtility = new DependencyUtility(); dependencyUtility.Register(new Mock <ILogger>().Object); string path = $"{Path.GetTempPath()}/{DateTime.UtcNow.Ticks}.json"; File.WriteAllText(path, json, Encoding.UTF8); IConfigurationHandler config = new ConfigurationHandler(null, path); try { action.Invoke(config); } finally { File.Delete(path); } }
public void ExtensionLoaderThrowsExceptionWhenFileDoesNotExist() { string json = "{\"host\":\"0.0.0.0\",\"port\":1337,\"extensions\":{\"extension1\":{\"path\":\"\",\"config\":{\"key\":\"value\"}}}}"; IConfigurationHandler config = GetConfigurationHandler(json, out string path); IDependencyUtility dependencyUtility = new DependencyUtility(); dependencyUtility.Register <ILogger>(new Mock <ILogger>().Object); dependencyUtility.Register <IConfigurationHandler>(config); IExtensionLoader loader = new ExtensionLoader(dependencyUtility); try { Assert.Throws(typeof(ConfigurationItemMissingException), () => loader.LoadExtensions()); } finally { File.Delete(path); } }
public SettingsWindow() { InitializeComponent(); DependencyUtility.BuildUp(this); autoRunMenuItem.IsChecked = AutorunHelper.IsAutorunRegistered; playerWindow = new VkMusic.UI.PlayerWindow(); MyNotifyIcon.BeforeShowTrayPopup += MyNotifyIcon_BeforeShowTrayPopup;; MusicWorker.SynchronizationStarted += MusicWorker_SynchronizationStarted; MusicWorker.SynchronizationCompleted += MusicWorker_SynchronizationCompleted; mainWindow = new MainWindow(); MusicPlayer.MusicPlayed += () => startPauseItem.Header = "Пауза"; MusicPlayer.MusicPaused += () => startPauseItem.Header = "Старт"; playerWindow.Topmost = alwaysOnTopItem.IsChecked = Properties.Settings.Default.AlwaysOnTop; }
public void ServerRunningFlagReturnsCorrectStatus() { IDependencyUtility dependencyUtility = new DependencyUtility(); dependencyUtility.Register <ILogger>(new Mock <ILogger>().Object); dependencyUtility.Register <IRouteTable>(new Mock <IRouteTable>().Object); dependencyUtility.Register <ISecurityContainer>(new Mock <ISecurityContainer>().Object); dependencyUtility.Register <ITcpHandler>(new Mock <ITcpHandler>().Object); dependencyUtility.Register <IThreadHelper>(new Mock <IThreadHelper>().Object); using (IServer server = new Server.WebSocketServer(string.Empty, string.Empty, 0, dependencyUtility, 1, 3)) { server.Run(false); Assert.True(server.IsRunning); server.Stop(); Assert.False(server.IsRunning); } }
static void Main(string[] args) { //Create our dependency utility IDependencyUtility dependencyUtility = new DependencyUtility(); //Create our security container ISecurityContainer securityContainer = GenerateSecurityContainer(); //Register dependencies dependencyUtility.Register <ISecurityContainer>(securityContainer); //Set port and host int port = Convert.ToInt32(1337); IPAddress host = IPAddress.Parse("0.0.0.0"); //Start the server using (IServer server = new Server.WebSocketServer("MyServerName", host, port, dependencyUtility)) { //Start listening and blocking the main thread server.Run(); } }
public CommandInfo(MethodInfo method) { _method = method; _parameters = method.GetParameters(); _parameterDict = _parameters.ToDictionary(p => p.Name); _requiredParams = _parameters.Count(p => !p.IsOptional); _moduleFactory = DependencyUtility.CreateFactory(method.DeclaringType); if (method.ReturnType != typeof(Task) && method.ReturnType.GetGenericTypeDefinition() != typeof(Task <>)) { throw new ArgumentException($"{method} is not asynchronous."); } // build name regex _attribute = method.GetCustomAttribute <CommandAttribute>(); if (_attribute == null) { throw new ArgumentException($"{method} is not a command."); } _nameRegex = new Regex(BuildNamePattern(method, _attribute), _options); // build parameter regex var bindingExpression = method.GetCustomAttribute <BindingAttribute>()?.Expression; var requiredParameters = _parameterDict.Where(x => !x.Value.IsOptional).Select(x => x.Key); if (bindingExpression == null && _parameters.Any(p => !p.IsOptional)) { bindingExpression = $"[{string.Join("] [", requiredParameters)}]"; } _parameterRegex = new Regex(BuildParameterPattern(bindingExpression ?? ""), _options); // build optional parameter regex _optionRegex = new Regex(BuildOptionPattern(_parameters.Where(p => p.IsOptional).ToArray()), _options); }
private void Prepare() { var directory = Directory.CreateDirectory(AppPaths.AppPath); musicLoader = new MusicLoader(directory.FullName, tokenID, userID); DependencyUtility.RegisterInstance(musicLoader); DependencyUtility.RegisterType <MusicPlayer>(); DependencyUtility.RegisterInstance(new AutorunHelper(System.Reflection.Assembly.GetExecutingAssembly().Location)); var progressWindow = new ProgressWindow("Синхронизация", musicLoader); progressWindow.Show(); musicWorker = DependencyUtility.Resolve <TrackList>(); musicPlayer = DependencyUtility.Resolve <MusicPlayer>(); musicLoader.LoadAsync().ContinueWith((t) => Dispatcher.Invoke(firstSynchronizationCompleted)); var settingsWindow = new SettingsWindow(); fastTimer.Tick += (s, e) => { if (!mutexShow.WaitOne(0, true)) { musicPlayer.InvokeShow(); } else { mutexShow.ReleaseMutex(); } }; }
public void ServerRunningSpawnsCorrectAmountOfThreads() { IDependencyUtility dependencyUtility = new DependencyUtility(); Mock <IThreadHelper> threadHelper = new Mock <IThreadHelper>(); dependencyUtility.Register <ILogger>(new Mock <ILogger>().Object); dependencyUtility.Register <IRouteTable>(new Mock <IRouteTable>().Object); dependencyUtility.Register <ISecurityContainer>(new Mock <ISecurityContainer>().Object); dependencyUtility.Register <ITcpHandler>(new Mock <ITcpHandler>().Object); dependencyUtility.Register <IThreadHelper>(threadHelper.Object); using (IServer server = new Server.WebSocketServer(string.Empty, string.Empty, 0, dependencyUtility, 2, 4)) { server.Run(false); //Listener threads: 2 //Client threads: 2 * 4 (multiplicand) //Dead Connection thread: 1 // = 11 threadHelper.Verify(x => x.CreateAndRun(It.IsAny <ThreadStart>()), Times.Exactly(11)); server.Stop(); } }
// The choice of seeding types used to get the exact assemblies is arbitrary as long as they // reside in the correct assemblies private static void AddDependenciesAutomatically(IServiceCollection services) { DependencyUtility.RegisterInterfaces("Service", services, Assembly.GetAssembly(typeof(IMessagesService)), Assembly.GetAssembly(typeof(MessagesService))); DependencyUtility.RegisterInterfaces("Repository", services, Assembly.GetAssembly(typeof(IMessagesRepository)), Assembly.GetAssembly(typeof(MessagesRepository))); }
// Register all tasks private static void AddDependenciesAutomatically(IServiceCollection services) { DependencyUtility.RegisterInterfaces("Task", services, Assembly.GetAssembly(typeof(IDatabaseEventLogCleanupTask)), Assembly.GetAssembly(typeof(DatabaseEventLogCleanupTask)), DependencyTypes.Transient); }