public List <BooksModel> GetBooks(BooksModel booksModel)
        {
            BooksDbContext    db    = new BooksDbContext();
            XDocument         doc   = db.GetXmlDb();
            var               map   = new Dictionary <string, BooksModel>();
            List <BooksModel> bList = new List <BooksModel>();

            foreach (XElement x in doc.Descendants("book"))
            {
                if (booksModel.Title != null)
                {
                    if (x.Element("title").Value.ToLower().Contains(booksModel.Title.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
                if (booksModel.Author != null)
                {
                    if (x.Element("author").Value.ToLower().Contains(booksModel.Author.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
                if (booksModel.Genre != null)
                {
                    if (x.Element("genre").Value.ToLower().Contains(booksModel.Genre.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
                if (booksModel.Price != null)
                {
                    if (x.Element("price").Value.ToLower().Contains(booksModel.Price.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
                if (booksModel.Publish_date != null)
                {
                    if (x.Element("publish_date").Value.ToLower().Contains(booksModel.Publish_date.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
                if (booksModel.Description != null)
                {
                    if (x.Element("description").Value.ToLower().Contains(booksModel.Description.ToLower()))
                    {
                        if (!map.ContainsKey(x.Attribute("id").Value))
                        {
                            map.Add(x.Attribute("id").Value, getBook(x));
                        }
                    }
                }
            }
            return(map.Values.ToList());
        }