internal void UnSubscribe(Models.File file)
        {
            if (FileWatcher.ContainsKey(file))
            {
                FileWatcher[file].Dispose();

                FileWatcher.Remove(file);
            }
        }
        internal void Subscribe(Models.File file)
        {
            if (!FileWatcher.ContainsKey(file))
            {
                FileInfo fileInfo = new FileInfo(file.Path);

                FileSystemWatcher fileWatcher = new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name)
                {
                    NotifyFilter = NotifyFilters.LastWrite
                };
                fileWatcher.Changed += (object sender, FileSystemEventArgs e) =>
                {
                    Events.CreateNewVersionEvent.FileModified(new FileInfo(e.FullPath));
                };
                fileWatcher.EnableRaisingEvents = true;

                FileWatcher.Add(file, fileWatcher);
            }
        }