public void Add(ClientComponent client, ServerComponent server, GroupComponent group) { Entity entity = new Entity(); entity.Add(client); ClientOptionsComponent options = new ClientOptionsComponent(); entity.Add(options); entity.Add(server); entity.Add(group); FolderListComponent folderList = new FolderListComponent(); entity.Add(folderList); FileMapComponent fileMap = new FileMapComponent(); entity.Add(fileMap); FolderMapComponent folderMap = new FolderMapComponent(); entity.Add(folderMap); ClientMachineComponent machine = new ClientMachineComponent(); entity.Add <MachineComponent>(machine); SessionComponent session = new SessionComponent(); entity.Add(session); FileComponent file = new FileComponent(); entity.Add(file); SearchListComponent search = new SearchListComponent(SearchController.Dispatcher); entity.Add(search); BrowseComponent browse = new BrowseComponent(); entity.Add(browse); DownloadListComponent download = new DownloadListComponent(DownloadController.Dispatcher); entity.Add(download); UploadListComponent upload = new UploadListComponent(UploadController.Dispatcher); entity.Add(upload); #if DEBUG LogComponent log = new LogComponent(LogController); entity.Add(log); #endif Add(entity); }
private void WriteOptions(XmlWriter writer, Entity entity) { ClientOptionsComponent options = entity.Get <ClientOptionsComponent>(); writer.WriteStartElement(XmlTag.Options); writer.WriteElementString(XmlTag.MaxDownloads, options.MaxDownloads.ToString()); writer.WriteElementString(XmlTag.MaxUploads, options.MaxUploads.ToString()); writer.WriteEndElement(); }
private void ReadOptions(XmlReader reader, ref ClientOptionsComponent options) { if (reader.IsEmptyElement) { return; } bool loop = true; string name = null; while (loop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: { name = reader.Name; break; } case XmlNodeType.Text: { switch (name) { case XmlTag.MaxDownloads: { options.MaxDownloads = int.Parse(reader.Value); break; } case XmlTag.MaxUploads: { options.MaxUploads = int.Parse(reader.Value); break; } } break; } case XmlNodeType.EndElement: { if (XmlTag.Options.Equals(reader.Name)) { loop = false; } break; } } } }
private void ClientEditCommand_Executed(object sender, ExecutedRoutedEventArgs e) { DemonSaw.Entity.Entity entity = ClientController.SelectedItem; ClientEditWindow wnd = new ClientEditWindow(entity) { Owner = this }; bool result = (bool)wnd.ShowDialog(); if (result) { // Client ClientComponent client = entity.Get <ClientComponent>(); client.Name = wnd.ClientName.Text; client.Download = wnd.DownloadPath.Text; // Group GroupComponent group = entity.Get <GroupComponent>(); bool groupChanged = (entity == MenuController.Entity) && !group.Path.Equals(wnd.GroupPath.Text); group.Path = wnd.GroupPath.Text; GroupImage.Source = group.Image; // Options ClientOptionsComponent options = entity.Get <ClientOptionsComponent>(); options.MaxDownloads = int.Parse(wnd.MaxDownloads.Text); options.MaxUploads = int.Parse(wnd.MaxUploads.Text); // Machine MachineComponent machine = entity.Get <MachineComponent>(); machine.Restart(); // Controller MenuController.Update(); if (groupChanged) { SearchController.Clear(); BrowseController.Clear(); } } }
private void ClientEditWindow_Loaded(object sender, RoutedEventArgs e) { // Client ClientComponent client = _entity.Get <ClientComponent>(); ClientName.Text = client.Name; DownloadPath.Text = client.Download; ClientName.Focus(); // Group GroupComponent group = _entity.Get <GroupComponent>(); GroupPath.Text = group.Path; SetGroup(); // Options ClientOptionsComponent options = _entity.Get <ClientOptionsComponent>(); MaxDownloads.Text = options.MaxDownloads.ToString(); MaxUploads.Text = options.MaxUploads.ToString(); }
private void ReadClient(XmlReader reader) { if (reader.IsEmptyElement) { return; } bool loop = true; string name = null; // Components Entity entity = new Entity(); ClientComponent client = new ClientComponent(); ClientOptionsComponent options = new ClientOptionsComponent(); GroupComponent group = new GroupComponent(); ServerComponent server = new ServerComponent(); List <string> paths = new List <string>(); client.Enabled = bool.Parse(reader.GetAttribute(XmlTag.Enabled)); while (loop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: { name = reader.Name; switch (name) { case XmlTag.Router: { ReadRouter(reader, ref server); break; } case XmlTag.Options: { ReadOptions(reader, ref options); break; } case XmlTag.Folders: { ReadFolders(reader, ref paths); break; } } break; } case XmlNodeType.Text: { switch (name) { case XmlTag.Id: { entity.Id = reader.Value; break; } case XmlTag.Name: { client.Name = reader.Value; break; } case XmlTag.Download: { client.Download = reader.Value; break; } case XmlTag.Group: { group.Path = reader.Value; break; } } break; } case XmlNodeType.EndElement: { if (XmlTag.Client.Equals(reader.Name)) { loop = false; } break; } } } // Components entity.Add(client); entity.Add(options); entity.Add(group); entity.Add(server); FolderListComponent folderList = new FolderListComponent(); entity.Add(folderList); FileMapComponent fileMap = new FileMapComponent(); entity.Add(fileMap); FolderMapComponent folderMap = new FolderMapComponent(); entity.Add(folderMap); ClientMachineComponent machine = new ClientMachineComponent(); entity.Add <MachineComponent>(machine); SessionComponent session = new SessionComponent(); entity.Add(session); FileComponent file = new FileComponent(); entity.Add(file); SearchListComponent search = new SearchListComponent(SearchController.Dispatcher); entity.Add(search); BrowseComponent browse = new BrowseComponent(); entity.Add(browse); DownloadListComponent download = new DownloadListComponent(DownloadController.Dispatcher); entity.Add(download); UploadListComponent upload = new UploadListComponent(UploadController.Dispatcher); entity.Add(upload); #if DEBUG LogComponent log = new LogComponent(LogController); entity.Add(log); #endif ClientController.Add(entity); foreach (string path in paths) { FileComponent shared = new FileComponent(path) { Owner = entity }; folderList.Add(shared); } }