public IEnumerable<Talk> Load()
        {
            var registeredTalks = new List<Talk>();

            foreach (var talk in TalksList)
            {
                var unit = CheckForValidUnit(talk);
                string topic=null;
                

                var durationPosition = talk.IndexOfAny("0123456789".ToCharArray());

                var duration = "1";
                
                if (durationPosition == -1)
                    topic = talk.Substring(0, talk.LastIndexOf(unit, StringComparison.OrdinalIgnoreCase));
                else
                {
                    topic = talk.Substring(0, durationPosition);
                    
                    duration = talk.Substring(durationPosition,
                             talk.LastIndexOfAny("0123456789".ToCharArray()) - durationPosition + 1);
                }


                var talkDuration = new TalkDuration((ConferenceTalkTimeUnit)Enum.Parse(typeof(ConferenceTalkTimeUnit), unit, true)
                                                    ,Convert.ToInt32(duration));

                registeredTalks.Add(new Talk(topic, talkDuration));
            }
            
            return registeredTalks;
        }
        public Talk(string topic, TalkDuration duration)
        {
            try
            {

                Duration = duration;
                if (IsInValidTitle(topic))
                    throw new ArgumentException("Title Cannot contain Numeric values");
                Topic = topic;
            }
            catch (ArgumentException e)
            {
                throw;
            }

        }
        static void Main(string[] args)
        {
            Conference _technicalConference;
            TalkDuration _duration;
            ITalkScheduler _scheduler;
            List<Track> _tracks;
            List<Day> _days;

            // TEST THOUGHTWORKS TEST INPUTS
            _duration = new TalkDuration(ConferenceTalkTimeUnit.Min, 60); // Initialize  Talk Duration
            _scheduler = new Scheduler(); 

            _days = new List<Day>();

            // Initialization of Two days Track from the
            _tracks = new List<Track>();
            for (var i = 0; i < 2; i++)
            {
                _tracks.Add(InputFactory.GetNewTrack());
            }

            _days.Add(new Day(_tracks));
            _technicalConference = new Conference(_scheduler, _days);

            _technicalConference.TalksLoader = new ConferenceTalkLoader(InputFactory.GetTalksListOne());
            _technicalConference.TalksSubmission();

            _technicalConference.TalksLoader = new ConferenceTalkLoader(InputFactory.GetTalksListTwo());
            _technicalConference.TalksSubmission();

            _technicalConference.Schedule();

            Console.WriteLine("*******************Conference Tracking Management System******************");
            Console.WriteLine("**************************************************************************");
            Console.WriteLine();
            Console.WriteLine("*********************TEST INPUTS GIVEN BY THOUGHTWORKS********************");
            Console.WriteLine("**************************************************************************");

            PrintFormatter t = new PrintFormatter();
            t.PrintFormat(_days);
            
            /// TEST MY OWN CONFERENCE TRACK INPUTS
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("**************************************************************************");
            Console.WriteLine("*********************TEST INPUTS GIVEN BY ME******************************");
            Console.WriteLine("**************************************************************************");

            // TEST THOUGHTWORKS TEST INPUTS
            _duration = new TalkDuration(ConferenceTalkTimeUnit.Min, 60); // Initialize  Talk Duration
            _scheduler = new Scheduler();

            _days = new List<Day>();

            // Initialization of Two days Track from the
            _tracks = new List<Track>();
            for (var i = 0; i < 2; i++)
            {
                _tracks.Add(InputFactory.GetNewTrack());
            }

            _days.Add(new Day(_tracks));
            _technicalConference = new Conference(_scheduler, _days);

            _technicalConference.TalksLoader = new ConferenceTalkLoader(InputFactory.GetMyTalksListOne());
            _technicalConference.TalksSubmission();

            _technicalConference.TalksLoader = new ConferenceTalkLoader(InputFactory.GetMyTalksListTwo());
            _technicalConference.TalksSubmission();

            _technicalConference.Schedule();
            t.PrintFormat(_days);
            Console.ReadLine();
        }