Show random quote on asp.net webpage

I am working on an ASP.NET web project (C #) that uses master pages.

I am looking for an easy way to display a random customer quote every time a page loads.

Since this is a fairly simple web project, I would like to stay away from storing quotes in the database. There is currently no database connection required for the project, so I would like to save it as simple as possible - maybe save quotes in an XML file using XmlTextReader to read the file?

Any advice is appreciated.

thank

Edit: I will need to store and retrieve both the quote and the client name for the quote.

+3
source share
3

- LINQ:

XElement xml = new XElement("quotes",
    new XElement("quote",
        new XElement("customer", "Customer #1"),
        new XElement("text", "Quote #1")),
    new XElement("quote",
        new XElement("customer", "Customer #2"),
        new XElement("text", "Quote #2")),
    new XElement("quote",
        new XElement("customer", "Customer #3"),
        new XElement("text", "Quote #3")),
    new XElement("quote",
        new XElement("customer", "Customer #4"),
        new XElement("text", "Quote #4")),
    new XElement("quote",
        new XElement("customer", "Customer #5"),
        new XElement("text", "Quote #5"))
);

//XElement xml = XElement.Load("filename"); // use file instead of above
var result = xml.Elements()
                .OrderBy(r => System.Guid.NewGuid())
                .Select(element => new { 
                        Customer = element.Element("customer").Value,
                        Quote = element.Element("text").Value
                    })
                .First();

Console.WriteLine("{0} : {1}", result.Customer, result.Quote);    

:

<quotes>
  <quote>
    <customer>Customer #1</customer>
    <text>Quote #1</text>
  </quote>
  <quote>
    <customer>Customer #2</customer>
    <text>Quote #2</text>
  </quote>
  <quote>
    <customer>Customer #3</customer>
    <text>Quote #3</text>
  </quote>
  <quote>
    <customer>Customer #4</customer>
    <text>Quote #4</text>
  </quote>
  <quote>
    <customer>Customer #5</customer>
    <text>Quote #5</text>
  </quote>
</quotes>

XElement xml = XElement.Load("filename");

xml ( ).

Guid, , : public static Random rand = new Random(); :

int count = xml.Elements().Count();
var randomQuote = xml.Elements()
                     .OrderBy(i => rand.Next(0, count))
                     .Select(element => new { 
                        Customer = element.Element("customer").Value,
                        Quote = element.Element("text").Value
                      })
                     .First();

Console.WriteLine("{0} : {1}", result.Customer, result.Quote); 
+4

: , , , File.ReadAllText(), .

:

1 blah blah blah.
2 lorem ipsum dolor...

:

string[] quotes = File.ReadAllText("path/to/quotes.txt")
          .Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
string randomQuote = quotes[new Random().Next(0, quotes.Length)];
+4

, . xml , ...

+3
source

Source: https://habr.com/ru/post/1730107/


All Articles