Ejemplo n.º 1
0
        public void TimeParserTest()
        {
            const string data = "Ioc getting started 60min";

            var parser = new TalkParser();
            var result = parser.Time(data);

            Assert.IsTrue(parser.Success);
            Assert.AreEqual(60, result.TotalMinutes);
        }
        public void GivenAnInputTextFileWithTopicsAndDuration_ThenCreateAListOfTalks()
        {
            var talksParser = new TalkParser();
            var path        = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

            var localPath = new Uri(path).LocalPath;
            var result    = talksParser.Parse(localPath + @"\input.txt");

            Assert.That(result.Count, Is.GreaterThanOrEqualTo(1));
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            string currentDirectory = Directory.GetCurrentDirectory();
            string filePath         = Path.Combine(currentDirectory, "input.txt");
            var    parser           = new TalkParser();
            var    talks            = parser.Parse(filePath);

            var trackService = new TrackService();
            var tracks       = trackService.CreateTracks(talks);

            var trackNumber = 1;

            foreach (var track in tracks)
            {
                var morningStartTime   = new TimeSpan(09, 00, 0);
                var afternoonStartTime = new TimeSpan(01, 00, 0);

                Console.WriteLine("Track: " + trackNumber++);
                Console.WriteLine("");

                foreach (var talk in track.MorningSesion)
                {
                    Console.WriteLine(morningStartTime.ToString(@"hh\:mm") + " AM" + " " + talk.Topic + " " + (talk.Duration == 5 ? "lightning" : talk.Duration + " Min"));
                    morningStartTime = morningStartTime.Add(new TimeSpan(00, talk.Duration, 00));
                }

                Console.WriteLine("12:00 PM Lunch");
                foreach (var talk in track.AfternoonSession)
                {
                    Console.WriteLine(afternoonStartTime.ToString(@"hh\:mm") + " PM" + " " + talk.Topic + " " + (talk.Duration == 5 ? "lightning" : talk.Duration + " Min"));
                    afternoonStartTime = afternoonStartTime.Add(new TimeSpan(00, talk.Duration, 00));
                }
                Console.WriteLine("05:00 PM Networking Event");
                Console.WriteLine("");
            }
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            //Read the input data.
            DataReader reader = new DataReader();

            string[] lines = reader.ReadInputFromFile();

            //Optional : Print the raw input data.
            ConsolePrinter printer = new ConsolePrinter();

            printer.PrintArray(lines);

            //Parse the raw input data and extract talk details.
            TalkParser  parser = new TalkParser();
            List <Talk> events = parser.ExtractEvents(lines);

            //Schedule the talks according to the given constraints.
            TalkScheduler           scheduler = new TalkScheduler();
            Dictionary <int, Track> tracks    = scheduler.ScheduleTalks(events);

            //Print the final output schedule in the console.
            printer.PrintTracks(tracks);
            Console.ReadKey();
        }