private string BuildInsertStatement(Guest guest) { return string.Format("INSERT INTO reservations VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')", Guid.NewGuid().ToString(), guest.Name, DateTime.UtcNow.ToString(), guest.Attending.ToString(), guest.Underage.ToString()); }
private Guest[] HydrateGuests(SQLiteDataReader reader) { var guests = new List<Guest>(); while (reader.Read()) { var guest = new Guest(); guest.Name = reader.GetString(1); guest.ReservationDate = DateTime.Parse(reader.GetString(2)); guest.Attending = bool.Parse(reader.GetString(3)); guest.Underage = bool.Parse(reader.GetString(4)); guests.Add(guest); } return guests.ToArray(); }
public ActionResult List(string orderBy) { var guests = new Guest[0]; using (var connection = new SQLiteConnection("Data Source=" + MvcApplication.DatabaseFile + ";Version=3;")) { var command = connection.CreateCommand(); command.CommandText = "SELECT * FROM reservations"; connection.Open(); using (var reader = command.ExecuteReader()) guests = HydrateGuests(reader); connection.Close(); } switch (orderBy.ToLower()) { case "date": guests = guests.OrderBy(x => x.Name).OrderByDescending(x => x.ReservationDate).ToArray(); break; case "name": default: guests = guests.OrderBy(x => x.ReservationDate).OrderBy(x => x.Name).ToArray(); break; } ViewData["guests"] = guests; return View(); }