public void OnDataRecieved(object sender, CommandRecievedEventArgs a) { if (a.Command == (int)CommandEnum.GetConfigCommand) { SetSettings(a.Args); } else if (a.Command == (int)CommandEnum.CloseCommand) { DirectoryHandlers.Remove(a.Args[0]); } }
// recieves args from private void SetSettings(string[] args) { OutputDir = args[0]; SourceName = args[1]; LogName = args[2]; ThumbnailSize = args[3]; for (int i = 4; i < args.Length; i++) { DirectoryHandlers.Add(args[i]); } }
/// <summary> /// Remove handler on server side. /// </summary> /// <param name="handler">Handler to remove.</param> /// <param name="channel">Web channel for requests.</param> public void RemoveHandler(string handler, WebChannel channel) { if (handler != null && handler != "") { if (channel.IsConnected()) { CommandMessage req = new CommandMessage((int)CommandEnum.CloseCommand, new string[] { handler }); channel.Write(req); CommandMessage answer = channel.Read(); DirectoryHandlers.Remove(handler); } } }
/// <summary> /// on command recieved event handler function . /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void OnCommandRecieved(object sender, CommandRecievedEventArgs e) { try { //if it's command of get config . if (e.CommandID == (int)CommandEnum.GetConfigCommand) { OutputDirectory = e.Args[0]; Console.Write("OUTPUT DIRECTORY IS:"); Console.WriteLine(e.Args[0]); SourceName = e.Args[1]; LogName = e.Args[2]; ThumbnailSize = e.Args[3]; string[] directoryArray = e.Args[4].Split(';'); for (int i = 0; i < directoryArray.Length; i++) { string dir = directoryArray[i]; Console.WriteLine("dir name" + dir); Console.WriteLine("dir was added " + dir); DirectoryHandlers.Add(dir); } } //if it's event of close directory command . else if (e.CommandID == (int)CommandEnum.CloseCommand) { if (e.RequestDirPath != null && DirectoryHandlers != null && DirectoryHandlers.Contains(e.RequestDirPath)) { this.DirectoryHandlers.Remove(e.RequestDirPath); PropertyChanged?.Invoke(this, e: new PropertyChangedEventArgs(e.RequestDirPath)); } } // if it's get log command else if (e.CommandID == (int)CommandEnum.LogCommand) { // translate the Args array of CommandRecievedEventArgs to logs and add them to logCollection for (int i = 0; i < e.Args.Length; i += 2) { LogTypeAndMessage log = new LogTypeAndMessage(); log.Type = e.Args[i]; log.Message = e.Args[i + 1]; this.logArr.Add(log); } } } catch (Exception exception) { Console.WriteLine(exception.Message); } }