St. Patrick's Day

static class Program
{
    public static void Main()
    {
        EnjoyStPatricksDay.WithAGuinness();
    }
}

static class EnjoyStPatricksDay
{
    public static readonly Person Me = People.Jeff;
    public static readonly City CurrentCity = Cities.Chicago;

    public static void WithAGuiness()
    {
        if (CurrentCity.HasGuinness)
        {
            EnjoyStPatricksDay.WithAGuinness();
        }
        else
        {
            EnjoyStPatricksDay.WithAWhiskey();
        }
    }

    public static void WithAWhiskey()
    {
        if (CurrentCity.HasWhiskey &&
            !Me.PassedOut &&
            !Me.SickAsADog &&
             Me.HasMoney)
        {
            EnjoyStPatricksDay.WithAWhiskey();
        }
        else if (Me.HasMoney && !Me.PassedOut)
        {
            try
            {
                Me.EatFood();
            }
            catch (VomitException)
            {
            }
        }

        while (!Me.PassedOut)
        {
           try
           {
              Me.FindingWayBackToHotel();
           }
           catch (LostException)
           {
              Me.CatchTaxi();
           }
           finally
           {
              Me.Sleep();

              do
              {
                  Me.Snore();
              } while (Me.PassedOut);

              Me.DoHangover();
           }
        }
    }
}

Drink responsibly and have a great day!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.