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