BookStore.Importer.Program.Search C# (CSharp) Method

Search() public static method

public static Search ( ) : void
return void
        public static void Search()
        {
            var xmlQueries = XElement.Load("../../../reviews-queries.xml").Elements();
            var result = new XElement("search-results");

            foreach (var xmlQuery in xmlQueries)
            {
                var queryInReviews = db.Reviews.AsQueryable();
                if (xmlQuery.Attribute("type").Value == "by-period")
                {
                    var startDate = DateTime.Parse(xmlQuery.Element("start-date").Value);
                    var endDate = DateTime.Parse(xmlQuery.Element("end-date").Value);

                    queryInReviews = queryInReviews.Where(r => r.CreatedOn >= startDate && r.CreatedOn <= endDate);
                }
                if (xmlQuery.Attribute("type").Value == "by-author")
                {
                    var authorName = xmlQuery.Element("author-name").Value;
                    queryInReviews.Where(r => r.Author.Name == authorName);
                }

                var resultSet = queryInReviews
                    .OrderBy(r => r.CreatedOn)
                    .ThenBy(r => r.Content)
                    .Select(r => new
                    {
                        Date = r.CreatedOn,
                        Content = r.Content,
                        Book = new
                        {
                            Title = r.Book.Title,
                            Authors = r.Book.Authors
                            .OrderBy(a => a.Name)
                            .Select(a =>a.Name),
                            ISBN = r.Book.ISBN,
                            URL = r.Book.WebSite
                        }
                    }).ToList();

                var xmlResultSet = new XElement("result-set");

                foreach (var reviewInResult in resultSet)
                {
                    var xmlReview = new XElement("review");
                    xmlReview.Add(new XElement("date", reviewInResult.Date.ToString("d-MMM-yyyy")));
                    xmlReview.Add(new XElement("content", reviewInResult.Content));
                    
                    xmlResultSet.Add(xmlReview);
                }

                result.Add(xmlResultSet);
            }

            result.Save("../../../reviews-search-results.xml");
        }