private static List<Review> FindReviewsByReviewQuery(BookstoreDAL dal, BookstoreEntities context, XmlNode query) { string type = GetChildText(query, "@type"); List<Review> foundReviews = null; switch (type) { case "by-period": string startDateString = GetChildText(query, "start-date"); string endDateString = GetChildText(query, "end-date"); DateTime startDate = DateTime.Parse(startDateString); DateTime endDate = DateTime.Parse(endDateString); foundReviews = dal.FindReviewsByPeriod(context, startDate, endDate); break; case "by-author": string authorName = GetChildText(query, "author-name"); foundReviews = dal.FindReviewsByAuthor(context, authorName); break; default: throw new ArgumentException("Invalid review query type. " + "Must be 'by-period' or 'by-author'."); } return foundReviews; }