private BookRecDTO ParseBookRec(XmlReader reader) { BookRecDTO result = new BookRecDTO(); string idPlusPrefix = reader.GetAttribute("id"); result.Id = GetId(idPlusPrefix); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { HandleElementNode(reader, result); } else { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "book") { break; // Exit while loop. } } } return(result); }
private void HandleElementNode(XmlReader reader, BookRecDTO bookRec) { switch (reader.Name) { case "author": bookRec.Author = GetElementValue(reader); break; case "title": bookRec.Title = GetElementValue(reader); break; case "genre": bookRec.Genre = GetElementValue(reader); break; //case "genre": // { // string genre = GetElementValue(reader); // genre = genre.Replace(" ", ""); // bookRec.Genre = (Genre)Enum.Parse(typeof(Genre), genre); // break; // } case "price": bookRec.Price = Decimal.Parse(GetElementValue(reader)); break; case "publish_date": bookRec.PublishDate = DateTime.Parse(GetElementValue(reader)); break; case "description": { string description = GetElementValue(reader); bookRec.Description = Regex.Replace(description, @"\s+", " "); break; } default: break; } }
#pragma warning restore 67, CS0535 public BookReadOnly(BookRecDTO bookRec) { Id = bookRec.Id; Author = bookRec.Author; Title = bookRec.Title; Genre = bookRec.Genre; Price = bookRec.Price; PublishDate = bookRec.PublishDate; Description = bookRec.Description; }