/*============Public Function=======*/

        public Tuple <bool, string> AddNovel(string novelTitle, Source.SourceManager.Sources source, int sourceID)
        {
            foreach (Novel n in _novelList)
            {
                if (novelTitle.Equals(n.NovelTitle))
                {
                    Tuple <bool, string> failReturn = new Tuple <bool, string>(false, novelTitle + " already exists.");
                    return(failReturn);
                }
            }

            string newNovelLocation = Path.Combine(Configuration.Instance.NovelFolderLocation, novelTitle);

            if (!Directory.Exists(newNovelLocation))
            {
                Directory.CreateDirectory(newNovelLocation);
                Directory.CreateDirectory(Path.Combine(newNovelLocation, "audios"));
                Directory.CreateDirectory(Path.Combine(newNovelLocation, "texts"));
                File.Create(Path.Combine(newNovelLocation, Configuration.Instance.ReplaceSpecification));
                File.Create(Path.Combine(newNovelLocation, Configuration.Instance.DeleteSpecification));
            }
            else
            {
                if (!Directory.Exists(Path.Combine(newNovelLocation, "audios")))
                {
                    Directory.CreateDirectory(Path.Combine(newNovelLocation, "audios"));
                }

                if (!Directory.Exists(Path.Combine(newNovelLocation, "texts")))
                {
                    Directory.CreateDirectory(Path.Combine(newNovelLocation, "texts"));
                }

                if (!File.Exists(Path.Combine(newNovelLocation, Configuration.Instance.ReplaceSpecification)))
                {
                    File.Create(Path.Combine(newNovelLocation, Configuration.Instance.ReplaceSpecification));
                }

                if (!File.Exists(Path.Combine(newNovelLocation, Configuration.Instance.DeleteSpecification)))
                {
                    File.Create(Path.Combine(newNovelLocation, Configuration.Instance.DeleteSpecification));
                }
            }

            Novel newNovel = new Novel(novelTitle);

            _novelList.Insert(GetNonDroppedNovelCount(), newNovel);
            Tuple <bool, string> successfulReturn = new Tuple <bool, string>(true, novelTitle + " successfully added.");

            return(successfulReturn);
        }
        /*============Public Function=======*/

        public Tuple <bool, string> AddNovel(string novelTitle, Source.SourceManager.Sources source, int sourceID)
        {
            return(NovelLibrary.Instance.AddNovel(novelTitle, source, sourceID));
        }