コード例 #1
0
        public void Add(Book pEbook, string pAuthor, string pReview, string pEbookSource, string pOldEbookFile)
        {
            string strBookName = "";

            strBookName = Naming.CreateName(pEbook.bok_Title);
            string shortDirectory = Naming.CreateLocation(ConvertData.ToList(pAuthor)[0], strBookName);
            string newDirectory   = LycuteApplication.GetLocationString() + "\\" + shortDirectory;

            //check new directory is availble
            Directory.CreateDirectory(newDirectory);

            //Copy image
            string strFileType = "";
            string strImageURL = "";

            if (pEbook.bok_ImageURl != "" && pEbook.bok_ImageURl != null)
            {
                string[] arrayImageSourceURL = pEbook.bok_ImageURl.Split(new string[] { "///" }, StringSplitOptions.None);
                string   pImageSourceURL     = arrayImageSourceURL[arrayImageSourceURL.Count() - 1].Replace("/", "\\");

                strFileType = Naming.GetFileType(pImageSourceURL);
                strImageURL = Naming.FileLocation(newDirectory, "cover." + strFileType);
                //copy image
                if (pImageSourceURL != strImageURL)
                {
                    copy.Copy(pImageSourceURL, strImageURL, "file");
                }
            }
            //copy file
            copy.Copy(pEbookSource, Naming.FileLocation(newDirectory, pEbook.bok_Title + "." + Naming.GetFileType(pOldEbookFile)), "file");
            //edit review
            EditReview(newDirectory + "\\review.xml", pReview);
            //Save data
            using (LibraryEntities mainDB = new LibraryEntities())
            {
                Book b = new Book();
                b.bok_Edition = pEbook.bok_Edition;
                if (strFileType != "")
                {
                    b.bok_ImageURl = "cover." + strFileType;
                }
                b.bok_ISBN     = pEbook.bok_ISBN;
                b.bok_ID       = System.Guid.NewGuid().ToString();
                b.bok_Modified = pEbook.bok_Modified;
                b.bok_Rank     = pEbook.bok_Rank;
                b.bok_Title    = pEbook.bok_Title;
                b.bok_Volume   = pEbook.bok_Volume;
                b.bok_Year     = pEbook.bok_Year;
                b.bok_Location = pEbook.bok_Title + "." + Naming.GetFileType(pOldEbookFile);
                b.lng_ID       = "0";
                b.bok_Review   = "review.xml";

                Publisher pbl = publisherLib.AddPublisher(pEbook.Publisher, b.Publisher);
                b.pbl_ID = pbl.pbl_ID;


                List <string> auNames = authorLib.AddAuthor(pEbook.Authors, null, "");

                foreach (string name in auNames)
                {
                    var aut = (from author in mainDB.Authors
                               where author.ath_Name == name
                               select author).First();
                    aut.Books.Add(b);
                    //mainDB.AddToAuthors(au);
                }

                mainDB.AddToBooks(b);
                mainDB.SaveChanges();
            }
        }