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(); } }