static void Main(string[] args)
        {
            // The Length property is used to obtain the length of the array.
            // Notice that Length is a read-only property:
            Output("Number of command line parameters = {0}", args.Length);

            try
            {
                _format = (SortOutputFormat)Convert.ToInt32(args[1]);
                _fileName = args[0].ToString().Trim();
                Output("Input - Filename: {0} Sort Format: {1}", _fileName, _format.ToString());

            }
            catch(Exception)
            {
                Output("ERROR: Please provide valid arguments ex: c:\temp\testdata.txt 1");
                PauseExit();
            }

            // Create the Worker classes - These contain all the implementation code.
            FileParser parser = new FileParser();
            Sorter sorter = new Sorter();

            // Parse People from file
            IList<Person> people = parser.ParseFile(_fileName);

            // Sort People
            IList<Person> sorted = sorter.Sort(people, _format);

            // Display People
            Output(people);

            // Call REST Api
            CallRestApi();

            // Wait for Press any Key
            PauseExit();
        }
        /// <summary>
        /// Sorts a Person collection and returns the sorted results.
        /// </summary>
        /// <param name="people"></param>
        /// <param name="sortFormat"></param>
        /// <returns></returns>
        public IList<Person> Sort(IList<Person> people, SortOutputFormat sortFormat)
        {
            IList<Person> sorted = null;

            switch(sortFormat)
            {
                case SortOutputFormat.Output1:
                    {
                        sorted = people.OrderBy(p => p.Gender).ThenBy((p => p.LastName)).ToList();
                        break;
                    }
                case SortOutputFormat.Output2:
                    {
                        sorted = people.OrderBy(p => p.DateOfBirth).ToList();
                        break;
                    }
                case SortOutputFormat.Output3:
                        sorted = people.OrderByDescending(p => p.LastName).ToList();
                        break;
            }

            return sorted;
        }