/// <summary> /// Add a new book /// </summary> /// <param name="isbn"></param> /// <param name="sPublisherNumber"></param> /// <param name="sPublisherName"></param> /// <param name="sBookTitle"></param> /// <param name="BindingTypeNumber"></param> /// <returns></returns> public Book AddBook(string isbn, string sPublisherNumber, string sPublisherName, string sBookTitle, string BindingTypeNumber = "") { SDSPortalApplication app = new SDSPortalApplication(); Book _book = new Book(); _book.DATE_ADDED = DateTime.Now; _book.BOOK_IDENTIFICATION_TYPE = "ISBN"; _book.BOOK_NUMBER = isbn; _book.PUBLISHER_NUMBER = sPublisherNumber; _book.PUBLISHER_NAME = sPublisherName; _book.DATE_ADDED = DateTime.Now; _book.BOOK_IDENTIFICATION_TYPE = "ISBN"; _book.BOOK_TITLE = sBookTitle; _book.BINDING_TYPE_NUMBER = BindingTypeNumber; using (SDSEntities objSDS = new SDSEntities()) { SDS_BOOK objBook = (from B in objSDS.SDS_BOOK where B.BOOK_NUMBER == _book.BOOK_NUMBER && B.PUBLISHER_NUMBER == _book.PUBLISHER_NUMBER select B).FirstOrDefault(); if (objBook == null) { LogWriter.LogWriter.WriteEntry("Publisher Numbers :" + sPublisherNumber); _book.Add(app.SDSConnection); } else { _book.BOOK_ID = objBook.BOOK_ID; } } return(_book); }
/// <summary> /// Inser authors to a book instance /// </summary> /// <param name="bookInstanceID"></param> /// <param name="authors"></param> public void AddAuthors(decimal bookInstanceID, string authors) { SDSPortalApplication app = new SDSPortalApplication(); BookAuthor _author = new BookAuthor(); _author.DATE_ADDED = DateTime.Now; string[] Authors = authors.TrimEnd(',').Split(','); using (SDSEntities objSDS = new SDSEntities()) { foreach (String sAuthor in Authors) { SDS_BOOK_AUTHOR objAuthor = new SDS_BOOK_AUTHOR(); objAuthor.BOOK_INSTANCE_ID = long.Parse(bookInstanceID.ToString()); objAuthor.AUTHOR_NAME = sAuthor; objAuthor.DATE_ADDED = DateTime.Now; objAuthor.DATE_UPDATED = DateTime.Now; objSDS.SDS_BOOK_AUTHOR.AddObject(objAuthor); objSDS.SaveChanges(); } } }
/// <summary> /// Alter a SIX file /// </summary> /// <param name="xml"></param> /// <param name="productId"></param> /// <param name="hasColor"></param> /// <param name="totalPages"></param> /// <returns></returns> public string AlterSIX(string xml, decimal productId, string hasColor, string totalPages) { using (var context = new SDSEntities()) { try { var document = new XmlDocument(); int counter = 0; byte[] encodedString = Encoding.UTF8.GetBytes(xml); // Put the byte array into a stream and rewind it to the beginning var ms = new MemoryStream(encodedString); ms.Flush(); ms.Position = 0; document.Load(ms); var files = context.SDS_PRODUCT_FILE.Where(x => x.PRODUCT_ID == productId).ToList(); var tempList = files.Where(x => x.FILE_PATH.ToLower().Contains("text")).ToList(); var node = document.SelectSingleNode("//SIX/PRODUCT/BOOK/BOOK_INNER_WORK/BOOK_INNER_WORK_ITEM"); node.ParentNode.RemoveAll(); var innerNode = document.SelectSingleNode("//SIX/PRODUCT/BOOK/BOOK_INNER_WORK"); foreach (var item in tempList) { counter++; var innerItem = document.CreateElement("BOOK_INNER_WORK_ITEM"); innerNode.AppendChild(innerItem); node = document.CreateElement("SEQUENCE_NUMBER"); node.InnerText = counter.ToString(); innerItem.AppendChild(node); node = document.CreateElement("ITEM_TYPE"); node.InnerText = Path.GetExtension(Path.Combine(item.FILE_PATH + "\\", item.FILE_NAME)).Replace(".", "").ToUpper(); innerItem.AppendChild(node); node = document.CreateElement("ITEM_FILE_NAME"); node.InnerText = item.FILE_NAME; innerItem.AppendChild(node); node = document.CreateElement("ITEM_PAGE_FIRST"); innerItem.AppendChild(node); node = document.CreateElement("ITEM_PAGE_LAST"); innerItem.AppendChild(node); node = document.CreateElement("INNER_PAGE_COLOR"); node.InnerText = hasColor.ToLower(); innerItem.AppendChild(node); node = document.CreateElement("ITEM_NUMBER_OF_PAGES"); node.InnerText = totalPages; innerItem.AppendChild(node); node = document.CreateElement("ITEM_NUMBER_OF_COLOR_PAGES"); node.InnerText = "0"; innerItem.AppendChild(node); } counter = 0; tempList = files.Where(x => x.FILE_PATH.ToLower().Contains("cover")).ToList(); if (tempList.Any()) { node = document.SelectSingleNode("//SIX/PRODUCT/BOOK/BOOK_COVER/BOOK_COVER_ITEM"); node.ParentNode.RemoveAll(); var coverNode = document.SelectSingleNode("//SIX/PRODUCT/BOOK/BOOK_COVER"); foreach (var item in tempList) { counter++; var coverItem = document.CreateElement("BOOK_COVER_ITEM"); coverNode.AppendChild(coverItem); node = document.CreateElement("SEQUENCE_NUMBER"); node.InnerText = counter.ToString(); coverItem.AppendChild(node); node = document.CreateElement("ITEM_FILE_NAME"); node.InnerText = item.FILE_NAME; coverItem.AppendChild(node); node = document.CreateElement("ITEM_NUMBER_OF_PAGES"); coverItem.AppendChild(node); node = document.CreateElement("ITEM_NUMBER_OF_COLOR_PAGES"); node.InnerText = "0"; coverItem.AppendChild(node); node = document.CreateElement("OUTER_ITEM_NUMBER_OF_COLORS"); node.InnerText = "0"; coverItem.AppendChild(node); node = document.CreateElement("INNER_ITEM_NUMBER_OF_COLORS"); node.InnerText = "0"; coverItem.AppendChild(node); } } return(document.InnerXml); } catch (Exception ex) { LogWriter.LogWriter.WriteEntry("Six file could not be altered"); LogWriter.LogWriter.WriteEntry(ex.Message); return(xml); } } }