Esempio n. 1
0
        public override bool Remove(FileComponent file)
        {
            bool removed = base.Remove(file);

            if (removed)
            {
                if (Empty)
                {
                    Clear();
                }
                else
                {
                    FolderMapComponent folders = Owner.Get <FolderMapComponent>();
                    folders.Remove(file.Id);

                    try
                    {
                        Thread thread = new Thread(new ParameterizedThreadStart(RemoveFiles))
                        {
                            Priority = ThreadPriority.BelowNormal, IsBackground = true
                        };
                        thread.Start(file);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }

            return(removed);
        }
Esempio n. 2
0
        public override void Add(FileComponent file)
        {
            try
            {
                if (Contains(file))
                {
                    return;
                }

                base.Add(file);

                file.Type = FileType.Drive;
                FolderMapComponent folderMap = Owner.Get <FolderMapComponent>();
                folderMap.Add(file.Id, file);

                Thread thread = new Thread(new ParameterizedThreadStart(AddFiles))
                {
                    Priority = ThreadPriority.BelowNormal, IsBackground = true
                };
                thread.Start(file);

                Sort();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Esempio n. 3
0
        private void RemoveFiles(object obj)
        {
            try
            {
                FileComponent parent = (FileComponent)obj;

                // Folders
                FolderMapComponent folders = Owner.Get <FolderMapComponent>();

                foreach (FileComponent folder in parent.Folders)
                {
                    folders.Remove(folder.Id);
                    RemoveFiles(folder);
                }

                // Files
                FileMapComponent files = Owner.Get <FileMapComponent>();

                foreach (FileComponent file in parent.Files)
                {
                    files.Remove(file.Id);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            OnComponentChanged();
        }
Esempio n. 4
0
        private void AddFiles(object obj, ref long size)
        {
            try
            {
                FileComponent parent = (FileComponent)obj;

                // Folders
                FolderMapComponent folders = Owner.Get <FolderMapComponent>();

                foreach (FileComponent folder in parent.Folders)
                {
                    folders.Add(folder.Id, folder);
                    AddFiles(folder, ref size);
                    folder.Size = size;
                    size        = 0;
                }

                // Files
                FileMapComponent files = Owner.Get <FileMapComponent>();

                foreach (FileComponent file in parent.Files)
                {
                    files.Add(file.Id, file);
                    size += file.Size;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            OnComponentChanged();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        public override void Clear()
        {
            base.Clear();
            FolderMapComponent folders = Owner.Get <FolderMapComponent>();

            folders.Clear();

            FileMapComponent files = Owner.Get <FileMapComponent>();

            files.Clear();

            OnComponentChanged();
        }
Esempio n. 7
0
        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);
            }
        }