Example #1
0
        void btnDeleteImportFolder_Click(object sender, RoutedEventArgs e)
        {
            object obj = lbImportFolders.SelectedItem;

            if (obj == null)
            {
                return;
            }

            try
            {
                if (obj.GetType() == typeof(ImportFolder))
                {
                    ImportFolder ns = (ImportFolder)obj;

                    MessageBoxResult res = MessageBox.Show(string.Format(JMMServer.Properties.Resources.ImportFolders_DeleteFolder, ns.ImportFolderLocation), JMMServer.Properties.Resources.Confirm, MessageBoxButton.YesNo, MessageBoxImage.Question);
                    if (res == MessageBoxResult.Yes)
                    {
                        this.Cursor = Cursors.Wait;
                        Importer.DeleteImportFolder(ns.ImportFolderID);
                        this.Cursor = Cursors.Arrow;
                    }
                }
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Arrow;
                Utils.ShowErrorMessage(ex);
            }
        }
Example #2
0
 public static void Init()
 {
     JMMUser.Populate(a => a.JMMUserID);
     CloudAccount.Populate(a => a.CloudID);
     ImportFolder.Populate(a => a.ImportFolderID);
     AniDB_Anime.Populate(a => a.AniDB_AnimeID);
     AniDB_Episode.Populate(a => a.AniDB_EpisodeID);
     AniDB_File.Populate(a => a.AniDB_FileID);
     AniDB_Anime_Title.Populate(a => a.AniDB_Anime_TitleID);
     AniDB_Anime_Tag.Populate(a => a.AniDB_Anime_TagID);
     AniDB_Tag.Populate(a => a.AniDB_TagID);
     CustomTag.Populate(a => a.CustomTagID);
     CrossRef_CustomTag.Populate(a => a.CrossRef_CustomTagID);
     CrossRef_File_Episode.Populate(a => a.CrossRef_File_EpisodeID);
     VideoLocalPlace.Populate(a => a.VideoLocal_Place_ID);
     VideoLocal.Populate(a => a.VideoLocalID);
     VideoLocalUser.Populate(a => a.VideoLocal_UserID);
     GroupFilter.Populate(a => a.GroupFilterID);
     AnimeEpisode.Populate(a => a.AnimeEpisodeID);
     AnimeEpisode_User.Populate(a => a.AnimeEpisode_UserID);
     AnimeSeries.Populate(a => a.AnimeSeriesID);
     AnimeSeries_User.Populate(a => a.AnimeSeries_UserID);
     AnimeGroup.Populate(a => a.AnimeGroupID);
     AnimeGroup_User.Populate(a => a.AnimeGroup_UserID);
     GroupFilter.PostProcess();
     CleanUpMemory();
 }
Example #3
0
        public string TranslateDirectory(ImportFolder impfolder, string path)
        {
            if (impfolder == null)
            {
                return(string.Empty);
            }
            if (impfolder.CloudID.HasValue)
            {
                return("Somewhere over the rainbow (in the clouds)");
            }
            string result = TranslateDirectory(impfolder.ImportFolderID, path);

            try
            {
                if (result == string.Empty && Directory.Exists(impfolder.ImportFolderLocation))
                {
                    string npath = Path.Combine(impfolder.ImportFolderLocation, path);
                    if (Directory.Exists(npath))
                    {
                        return(npath);
                    }
                }
            }
            catch
            {
            }
            return(result);
        }
Example #4
0
        public ActionResult PatchImportFolder(int id, [FromBody] JsonPatchDocument <ImportFolder> folder)
        {
            if (folder == null)
            {
                return(BadRequest("object is invalid."));
            }
            var existing = RepoFactory.ImportFolder.GetByID(id);

            if (existing == null)
            {
                return(BadRequest("No Import Folder with ID"));
            }
            var patchModel = new ImportFolder(existing);

            folder.ApplyTo(patchModel, ModelState);
            TryValidateModel(patchModel);
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var serverModel = patchModel.GetServerModel();

            RepoFactory.ImportFolder.SaveImportFolder(serverModel);
            return(Ok());
        }
 public void Init(ImportFolder ifldr)
 {
     try
     {
         ServerInfo.Instance.RefreshFolderProviders();
         importFldr = new ImportFolder()
         {
             ImportFolderID       = ifldr.ImportFolderID,
             ImportFolderType     = ifldr.ImportFolderType,
             ImportFolderLocation = ifldr.ImportFolderLocation,
             ImportFolderName     = ifldr.ImportFolderName,
             IsDropSource         = ifldr.IsDropSource,
             IsDropDestination    = ifldr.IsDropDestination,
             CloudID   = ifldr.CloudID,
             IsWatched = ifldr.IsWatched
         };
         txtImportFolderLocation.Text = importFldr.ImportFolderLocation;
         chkDropDestination.IsChecked = importFldr.IsDropDestination == 1;
         chkDropSource.IsChecked      = importFldr.IsDropSource == 1;
         chkIsWatched.IsChecked       = importFldr.IsWatched == 1;
         if (ifldr.CloudID.HasValue)
         {
             comboProvider.SelectedItem = ServerInfo.Instance.FolderProviders.FirstOrDefault(a => a.CloudID == ifldr.CloudID.Value);
         }
         else
         {
             comboProvider.SelectedIndex = 0;
         }
         txtImportFolderLocation.Focus();
     }
     catch (Exception ex)
     {
         Utils.ShowErrorMessage(ex);
     }
 }
Example #6
0
        public SVR_ImportFolder SaveImportFolder(ImportFolder folder)
        {
            SVR_ImportFolder ns;

            if (folder.ImportFolderID > 0)
            {
                // update
                ns = GetByID(folder.ImportFolderID);
                if (ns == null)
                {
                    throw new Exception($"Could not find Import Folder ID: {folder.ImportFolderID}");
                }
            }
            else
            {
                // create
                ns = new SVR_ImportFolder();
            }

            if (string.IsNullOrEmpty(folder.ImportFolderName))
            {
                throw new Exception("Must specify an Import Folder name");
            }

            if (string.IsNullOrEmpty(folder.ImportFolderLocation))
            {
                throw new Exception("Must specify an Import Folder location");
            }

            if (!Directory.Exists(folder.ImportFolderLocation))
            {
                throw new Exception("Cannot find Import Folder location");
            }

            if (folder.ImportFolderID == 0)
            {
                SVR_ImportFolder nsTemp =
                    GetByImportLocation(folder.ImportFolderLocation);
                if (nsTemp != null)
                {
                    throw new Exception("Another entry already exists for the specified Import Folder location");
                }
            }

            ns.ImportFolderName     = folder.ImportFolderName;
            ns.ImportFolderLocation = folder.ImportFolderLocation;
            ns.IsDropDestination    = folder.IsDropDestination;
            ns.IsDropSource         = folder.IsDropSource;
            ns.IsWatched            = folder.IsWatched;
            ns.ImportFolderType     = folder.ImportFolderType;

            Save(ns);

            Utils.MainThreadDispatch(() => { ServerInfo.Instance.RefreshImportFolders(); });
            ShokoServer.StopWatchingFiles();
            ShokoServer.StartWatchingFiles();

            return(ns);
        }
Example #7
0
        public static void Init()
        {
            JMMUser.Populate();
            CloudAccount.Populate();
            ImportFolder.Populate();
            AniDB_Anime.Populate();
            AniDB_Episode.Populate();
            AniDB_File.Populate();
            AniDB_Anime_Title.Populate();
            AniDB_Anime_Tag.Populate();
            AniDB_Tag.Populate();
            CustomTag.Populate();
            CrossRef_CustomTag.Populate();
            CrossRef_File_Episode.Populate();
            VideoLocalPlace.Populate();
            VideoLocal.Populate();
            VideoLocalUser.Populate();
            GroupFilter.Populate();
            AnimeEpisode.Populate();
            AnimeEpisode_User.Populate();
            AnimeSeries.Populate();
            AnimeSeries_User.Populate();
            AnimeGroup.Populate();
            AnimeGroup_User.Populate();

            // Update Contracts if necessary
            try
            {
                JMMUser.RegenerateDb();
                CloudAccount.RegenerateDb();
                ImportFolder.RegenerateDb();
                AniDB_Anime.RegenerateDb();
                AniDB_Episode.RegenerateDb();
                AniDB_File.RegenerateDb();
                AniDB_Anime_Title.RegenerateDb();
                AniDB_Anime_Tag.RegenerateDb();
                AniDB_Tag.RegenerateDb();
                CustomTag.RegenerateDb();
                CrossRef_CustomTag.RegenerateDb();
                CrossRef_File_Episode.RegenerateDb();
                VideoLocalPlace.RegenerateDb();
                VideoLocal.RegenerateDb();
                VideoLocalUser.RegenerateDb();
                AnimeEpisode.RegenerateDb();
                AnimeEpisode_User.RegenerateDb();
                AnimeSeries.RegenerateDb();
                AnimeSeries_User.RegenerateDb();
                AnimeGroup.RegenerateDb();
                AnimeGroup_User.RegenerateDb();

                GroupFilter.RegenerateDb();
                GroupFilter.PostProcess();
            }
            catch (Exception e)
            {
                LogManager.GetCurrentClassLogger().Error(e, "There was an error starting the Database Factory");
            }
            CleanUpMemory();
        }
        public void TestAddFilesToFolder()
        {
            var file   = new ImportFile();
            var folder = new ImportFolder();

            folder.Add(file);
            Assert.AreEqual(folder, file.Parent);
        }
Example #9
0
		public static string DeleteImportFolder(int importFolderID)
		{
			try
			{
				ImportFolderRepository repNS = new ImportFolderRepository();
				ImportFolder ns = repNS.GetByID(importFolderID);

				if (ns == null) return "Could not find Import Folder ID: " + importFolderID;

				// first delete all the files attached  to this import folder
				Dictionary<int, AnimeSeries> affectedSeries = new Dictionary<int, AnimeSeries>();

				VideoLocalRepository repVids = new VideoLocalRepository();
				foreach (VideoLocal vid in repVids.GetByImportFolder(importFolderID))
				{
					//Thread.Sleep(5000);
					logger.Info("Deleting video local record: {0}", vid.FullServerPath);

					AnimeSeries ser = null;
					List<AnimeEpisode> animeEpisodes = vid.GetAnimeEpisodes();
					if (animeEpisodes.Count > 0)
					{
						ser = animeEpisodes[0].GetAnimeSeries();
						if (ser != null && !affectedSeries.ContainsKey(ser.AnimeSeriesID))
							affectedSeries.Add(ser.AnimeSeriesID, ser);
					}

					repVids.Delete(vid.VideoLocalID);
				}

				// delete any duplicate file records which reference this folder
				DuplicateFileRepository repDupFiles = new DuplicateFileRepository();
				foreach (DuplicateFile df in repDupFiles.GetByImportFolder1(importFolderID))
					repDupFiles.Delete(df.DuplicateFileID);

				foreach (DuplicateFile df in repDupFiles.GetByImportFolder2(importFolderID))
					repDupFiles.Delete(df.DuplicateFileID);

				// delete the import folder
				repNS.Delete(importFolderID);
				ServerInfo.Instance.RefreshImportFolders();

				foreach (AnimeSeries ser in affectedSeries.Values)
				{
					ser.QueueUpdateStats();
					//StatsCache.Instance.UpdateUsingSeries(ser.AnimeSeriesID);
				}

				

				return "";
			}
			catch (Exception ex)
			{
				logger.ErrorException(ex.ToString(), ex);
				return ex.Message;
			}
		}
Example #10
0
 public ImportFolder GetByImportLocation(string importloc)
 {
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         ImportFolder cr = session
                           .CreateCriteria(typeof(ImportFolder))
                           .Add(Restrictions.Eq("ImportFolderLocation", importloc))
                           .UniqueResult <ImportFolder>();
         return(cr);
     }
 }
Example #11
0
        private ImportItem Load(string name)
        {
            var directory = new DirectoryInfo(name);
            var item      = new ImportFolder
            {
                SourceDirectory = directory,
                Name            = m_filenameConverter.Convert(directory.Name),
                CreatedBy       = MetaDataProvider.GetAuthor(directory.FullName),
                ModifiedBy      = MetaDataProvider.GetEditor(directory.FullName),
                MetaData        = MetaDataProvider.GetMetaData(directory.FullName)
            };

            var result = m_validator.Validate(item);

            if (result.IsValid)
            {
                foreach (var folder in directory.GetDirectories())
                {
                    if ((folder.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden || m_settings.ImportHiddenFiles)
                    {
                        item.Add(Load(folder.FullName));
                    }
                }

                foreach (var file in directory.GetFiles())
                {
                    if ((file.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden || m_settings.ImportHiddenFiles)
                    {
                        var importFile = new ImportFile
                        {
                            SourceFile = file,
                            Name       = m_filenameConverter.Convert(file.Name),
                            CreatedBy  = MetaDataProvider.GetAuthor(file.FullName),
                            ModifiedBy = MetaDataProvider.GetEditor(file.FullName),
                            MetaData   = MetaDataProvider.GetMetaData(file.FullName),
                        };
                        var fileResult = m_validator.Validate(importFile);
                        if (fileResult.IsValid)
                        {
                            item.Add(importFile);
                        }
                        else
                        {
                            Log(fileResult);
                        }
                    }
                }
            }
            else
            {
                Log(result);
            }
            return(item);
        }
Example #12
0
        void lbImportFolders_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtFolderLocalPath.Text = "";
            ImportFolder fldr = _importFolders[lbImportFolders.SelectedIndex];

            if (fldr == null)
            {
                return;
            }
            txtFolderLocalPath.Text = fldr.GetLocalFileSystemFullPath();
        }
Example #13
0
        public (ImportFolder dest, string folder) GetDestinationFolder(SVR_VideoLocal_Place video)
        {
            try
            {
                SVR_AnimeSeries series = video.VideoLocal?.GetAnimeEpisodes().FirstOrDefault()?.GetAnimeSeries();

                if (series == null)
                {
                    return(null, "Series is null");
                }
                string name = Utils.ReplaceInvalidFolderNameCharacters(series.GetSeriesName());
                if (string.IsNullOrEmpty(name))
                {
                    return(null, "Unable to get series name");
                }

                var          anime      = series.GetAnime();
                ImportFolder destFolder = RepoFactory.ImportFolder.GetAll()
                                          .FirstOrDefault(a => a.ImportFolderLocation.Contains("Anime"));
                if (anime.Restricted == 1)
                {
                    destFolder = RepoFactory.ImportFolder.GetAll()
                                 .FirstOrDefault(a => a.ImportFolderLocation.Contains("Hentai"));
                }

                if (destFolder == null)
                {
                    destFolder = RepoFactory.ImportFolder.GetAll().FirstOrDefault(a => a.FolderIsDropDestination) ??
                                 RepoFactory.ImportFolder.GetAll().FirstOrDefault();
                }

                string path;
                var    group = series.AnimeGroup;
                if (group == null)
                {
                    return(null, "group is null");
                }
                if (group.GetAllSeries().Count == 1)
                {
                    path = name;
                }
                else
                {
                    var groupName = Utils.ReplaceInvalidFolderNameCharacters(group.GroupName);
                    path = Path.Combine(groupName, name);
                }

                return(destFolder, path);
            }
            catch
            {
                return(null, "ERROR");
            }
        }
Example #14
0
 public void Save(ImportFolder obj)
 {
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         // populate the database
         using (var transaction = session.BeginTransaction())
         {
             session.SaveOrUpdate(obj);
             transaction.Commit();
         }
     }
 }
Example #15
0
        public static void Init()
        {
            JMMUser.Populate();
            CloudAccount.Populate();
            ImportFolder.Populate();
            AniDB_Anime.Populate();
            AniDB_Episode.Populate();
            AniDB_File.Populate();
            AniDB_Anime_Title.Populate();
            AniDB_Anime_Tag.Populate();
            AniDB_Tag.Populate();
            CustomTag.Populate();
            CrossRef_CustomTag.Populate();
            CrossRef_File_Episode.Populate();
            VideoLocalPlace.Populate();
            VideoLocal.Populate();
            VideoLocalUser.Populate();
            GroupFilter.Populate();
            AnimeEpisode.Populate();
            AnimeEpisode_User.Populate();
            AnimeSeries.Populate();
            AnimeSeries_User.Populate();
            AnimeGroup.Populate();
            AnimeGroup_User.Populate();

            // Update Contracts if necessary
            JMMUser.RegenerateDb();
            CloudAccount.RegenerateDb();
            ImportFolder.RegenerateDb();
            AniDB_Anime.RegenerateDb();
            AniDB_Episode.RegenerateDb();
            AniDB_File.RegenerateDb();
            AniDB_Anime_Title.RegenerateDb();
            AniDB_Anime_Tag.RegenerateDb();
            AniDB_Tag.RegenerateDb();
            CustomTag.RegenerateDb();
            CrossRef_CustomTag.RegenerateDb();
            CrossRef_File_Episode.RegenerateDb();
            VideoLocalPlace.RegenerateDb();
            VideoLocal.RegenerateDb();
            VideoLocalUser.RegenerateDb();
            AnimeEpisode.RegenerateDb();
            AnimeEpisode_User.RegenerateDb();
            AnimeSeries.RegenerateDb();
            AnimeSeries_User.RegenerateDb();
            AnimeGroup.RegenerateDb();
            AnimeGroup_User.RegenerateDb();

            GroupFilter.RegenerateDb();
            GroupFilter.PostProcess();
            CleanUpMemory();
        }
Example #16
0
 void btnSaveLocalFolderPath_Click(object sender, EventArgs e)
 {
     if (lbImportFolders.SelectedItem != null)
     {
         ImportFolder fldr = _importFolders[lbImportFolders.SelectedIndex];
         if (fldr == null)
         {
             return;
         }
         FolderMappings.Instance.MapFolder(fldr.ImportFolderID, txtFolderLocalPath.Text.Trim());
         BaseConfig.Settings.Save();
     }
 }
        public override void Import(ImportItem importItem)
        {
            var folder   = new ImportFolder(importItem as ImportFolder);
            var flatList = GetFiles(importItem as ImportFolder);

            foreach (var file in flatList)
            {
                var newFile = new ImportFile(file);
                newFile.Name = NameResolver.ResolveName(file);
                folder.Add(newFile);
                ImportFile(file, newFile);
            }
        }
        private ImportItem Load(string name)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(name);
            ImportFolder  importFolder  = new ImportFolder();

            importFolder.SourceDirectory = directoryInfo;
            importFolder.Name            = this.m_filenameConverter.Convert(directoryInfo.Name);
            importFolder.CreatedBy       = this.MetaDataProvider.GetAuthor(directoryInfo.FullName);
            importFolder.ModifiedBy      = this.MetaDataProvider.GetEditor(directoryInfo.FullName);
            importFolder.MetaData        = this.MetaDataProvider.GetMetaData(directoryInfo.FullName);
            ImportFolder     directory1 = importFolder;
            ValidationResult result1    = this.m_validator.Validate(directory1);

            if (result1.IsValid)
            {
                foreach (DirectoryInfo directory2 in directoryInfo.GetDirectories())
                {
                    if ((directory2.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden || this.m_settings.ImportHiddenFiles)
                    {
                        directory1.Add(this.Load(directory2.FullName));
                    }
                }
                foreach (FileInfo file1 in directoryInfo.GetFiles())
                {
                    if ((file1.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden || this.m_settings.ImportHiddenFiles)
                    {
                        ImportFile importFile = new ImportFile();
                        importFile.SourceFile = file1;
                        importFile.Name       = this.m_filenameConverter.Convert(file1.Name);
                        importFile.CreatedBy  = this.MetaDataProvider.GetAuthor(file1.FullName);
                        importFile.ModifiedBy = this.MetaDataProvider.GetEditor(file1.FullName);
                        importFile.MetaData   = this.MetaDataProvider.GetMetaData(file1.FullName);
                        ImportFile       file2   = importFile;
                        ValidationResult result2 = this.m_validator.Validate(file2);
                        if (result2.IsValid)
                        {
                            directory1.Add((ImportItem)file2);
                        }
                        else
                        {
                            this.Log(result2);
                        }
                    }
                }
            }
            else
            {
                this.Log(result1);
            }
            return((ImportItem)directory1);
        }
Example #19
0
 private IEnumerable <ImportFile> GetFiles(ImportFolder folder)
 {
     foreach (ImportFolder folder1 in (IEnumerable <ImportFolder>)folder.Folders)
     {
         foreach (ImportFile file in this.GetFiles(folder1))
         {
             yield return(file);
         }
     }
     foreach (ImportFile file in (IEnumerable <ImportFile>)folder.Files)
     {
         yield return(file);
     }
 }
 private IEnumerable <ImportFile> GetFiles(ImportFolder folder)
 {
     foreach (var fol in folder.Folders)
     {
         foreach (var file in GetFiles(fol))
         {
             yield return(file);
         }
     }
     foreach (var file in folder.Files)
     {
         yield return(file);
     }
 }
        void EnsureFolder(ImportFolder folder)
        {
            if (folder == null)
            {
                return;
            }
            var target = folder.OriginalFullName.Replace(m_settings.SourceFolder, m_settings.ArchiveFolder);

            if (!Directory.Exists(target))
            {
                EnsureFolder(folder.Parent);
                Directory.CreateDirectory(target);
                log.Info("created directory " + target);
            }
        }
Example #22
0
 public void ImportContents(ImportFolder folder)
 {
     if (!folder.IsRoot)
     {
         this.ImportFolder(folder);
     }
     foreach (ImportFolder folder1 in (IEnumerable <ImportFolder>)folder.Folders)
     {
         this.ImportContents(folder1);
     }
     foreach (ImportFile file in (IEnumerable <ImportFile>)folder.Files)
     {
         this.ImportFile(file);
     }
 }
 public void ImportContents(ImportFolder folder)
 {
     if (!folder.IsRoot)
     {
         ImportFolder(folder);
     }
     foreach (var subfolder in folder.Folders)
     {
         ImportContents(subfolder);
     }
     foreach (var file in folder.Files)
     {
         ImportFile(file);
     }
 }
        public void TestRelativePath()
        {
            var file = new ImportFile {
                Name = "file"
            };
            var folder = new ImportFolder {
                Name = "folder"
            };
            var rootfolder = new ImportFolder {
                Name = "root"
            };

            folder.Add(file);
            rootfolder.Add(folder);
            Assert.AreEqual("/folder/file", file.ServerRelativePath);
        }
Example #25
0
        public ImportFolder ToContract()
        {
            var result = new ImportFolder
            {
                ImportFolderID       = ImportFolderID,
                CloudID              = CloudID,
                ImportFolderLocation = ImportFolderLocation,
                ImportFolderName     = ImportFolderName,
                ImportFolderType     = ImportFolderType,
                IsDropDestination    = IsDropDestination,
                IsDropSource         = IsDropSource,
                IsWatched            = IsWatched
            };

            return(result);
        }
Example #26
0
 public void Delete(int id)
 {
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         // populate the database
         using (var transaction = session.BeginTransaction())
         {
             ImportFolder cr = GetByID(id);
             if (cr != null)
             {
                 session.Delete(cr);
                 transaction.Commit();
             }
         }
     }
 }
        private void EnsureFolder(ImportFolder folder)
        {
            if (folder == null)
            {
                return;
            }
            string path = folder.OriginalFullName.Replace(this.m_settings.SourceFolder, this.m_settings.ArchiveFolder);

            if (Directory.Exists(path))
            {
                return;
            }
            this.EnsureFolder(folder.Parent);
            Directory.CreateDirectory(path);
            PostImportFileProcessor.log.Info((object)("created directory " + path));
        }
        void lbImportFolders_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            object obj = lbImportFolders.SelectedItem;

            if (obj == null)
            {
                return;
            }

            VM_ImportFolder ns  = (VM_ImportFolder)obj;
            ImportFolder    frm = new ImportFolder();

            frm.Owner = GetTopParent();
            frm.Init(ns);
            bool?result = frm.ShowDialog();
        }
        void btnAddImportFolder_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                ImportFolder frm = new ImportFolder();
                frm.Owner = GetTopParent();
                frm.Init(null);
                bool?result = frm.ShowDialog();

                VM_ShokoServer.Instance.RefreshImportFolders();
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
Example #30
0
        public void Init(ImportFolder ifldr)
        {
            try
            {
                importFldr = ifldr;

                txtImportFolderLocation.Text = importFldr.ImportFolderLocation;
                chkDropDestination.IsChecked = importFldr.IsDropDestination == 1;
                chkDropSource.IsChecked      = importFldr.IsDropSource == 1;
                chkIsWatched.IsChecked       = importFldr.IsWatched == 1;

                txtImportFolderLocation.Focus();
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
        /// <summary>Edits the selected import folder.</summary>
        public void EditImportFolder()
        {
            if (this.SelectedImportFolder == null)
            {
                return;
            }

            ImportFolderManagerViewModel viewModel = new ImportFolderManagerViewModel(this.SelectedImportFolder);

            bool? answer = this.windowManager.ShowDialog(viewModel);

            if (answer.HasValue && answer.Value)
            {
                this.ImportFolders.Remove(this.SelectedImportFolder);
                this.ImportFolders.Add(viewModel.Folder);
                this.SelectedImportFolder = null;
            }

            this.SaveSolution();
        }
 /// <summary>Initialises a new instance of the <see cref="ImportFolderManagerViewModel"/> class.</summary>
 /// <param name="folder">The import folder to change.</param>
 public ImportFolderManagerViewModel(ImportFolder folder)
 {
     this.DisplayName = "Edit Import Folder";
     this.Folder = folder;
 }