public Quote GetRandomQuote(string filePath)
        {
            if (string.IsNullOrEmpty(filePath))
            {
                return(DefaultQuoteGenerator.GetDefaultQuote());
            }

            string text, author;

            int randomIndex;

            try
            {
                XDocument doc = _ixDocumentLoader.LoadXDocument(filePath);

                randomIndex = RandomNumberGenerator.GetRandomNumber(1, doc.Descendants("quote").Count());

                var xElement = doc.Element("quotes");

                List <XElement> quoteDescendants = xElement.Descendants("quote").ToList();

                text = quoteDescendants.ElementAt(randomIndex).Element("text").Value;

                author = quoteDescendants.ElementAt(randomIndex).Element("author").Value;
            }
            catch (NullReferenceException)
            {
                return(DefaultQuoteGenerator.GetDefaultQuote());
            }

            var quote = new Quote(randomIndex + 1, text, author);

            return(quote);
        }
        public QuoteRepository(IXDocumentLoader ixDocumentLoader)
        {
            _ixDocumentLoader = ixDocumentLoader;

            RandomNumberGenerator = new RandomNumberGenerator();
            DefaultQuoteGenerator = new DefaultQuoteGenerator();
        }