internal static void Main() { var eventManager = new EventsManagerFast(); var commandParser = new CommandParser(); var printer = new StringBuilderPrinter(); var commandFactory = new CommandFactory(eventManager, printer); var consolePrinter = new ConsolePrinterVisitor(); while (true) { string userLine = Console.ReadLine(); if (userLine == "End" || userLine == null) { break; } try { var commandInfo = commandParser.Parse(userLine); var command = commandFactory.Create(commandInfo); command.Execute(commandInfo.Arguments); } catch (Exception ex) { Console.WriteLine(ex.Message); } } printer.Accept(consolePrinter); }
public void TestDeleteEventsByTitle_WhenNoEevntsAreAdded() { EventsManagerFast eventsManager = new EventsManagerFast(); int numberOfDeletedEvents = eventsManager.DeleteEventsByTitle("Title"); Assert.AreEqual(0, numberOfDeletedEvents); }
internal static void Main() { var eventsManager = new EventsManagerFast(); var commandExecutor = new CommandExecutor(eventsManager); StringBuilder resultOutput = new StringBuilder(); while (true) { string inputLine = Console.ReadLine(); if (inputLine == "End" || inputLine == null) { break; } try { Command parsedCommand = Command.Parse(inputLine); string outputCommandResult = commandExecutor.ProcessCommand(parsedCommand); resultOutput.AppendLine(outputCommandResult); } catch (Exception ex) { Console.WriteLine(ex.Message); } } Console.WriteLine(resultOutput); }
public static void Main() { // first bottleneck - it is better to use the multidictionary (EventManagerFast) since removing a lot of elements in list is slow operation EventsManagerFast eventsManager = new EventsManagerFast(); CommandProcessor commandProcessor = new CommandProcessor(eventsManager); while (true) { string command = Console.ReadLine(); if (command == "End" || command == null) { break; } try { Console.WriteLine(commandProcessor.ProcessCommand(Command.Parse(command))); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
/// <summary> /// Entry point of the application /// </summary> internal static void Main() { var eventsManager = new EventsManagerFast(); var processor = new CommandProcessor(eventsManager); var output = new StringBuilder(); while (true) { string commandText = Console.ReadLine(); if (commandText == EndCommandString || commandText == null) { // The sequence of commands is finished break; } try { var command = Command.Parse(commandText); var result = processor.ProcessCommand(command); output.AppendLine(result); } catch (Exception ex) { Console.WriteLine(ex.Message); break; } } Console.WriteLine(output); }
public static void Main() { //Use EventManagerFast because bottleneck is in EventManager var eventManager = new EventsManagerFast(); var eventExecutor = new EventExecutor(eventManager); StringBuilder result = new StringBuilder(); while (true) { string command = Console.ReadLine(); if (command == "End" || command == null) { Console.WriteLine(result.ToString()); break; } try { var parsedCommand = Command.Parse(command); var resultOfCommand = eventExecutor.ProcessCommand(parsedCommand); result.AppendLine(resultOfCommand); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } } }
public void DeleteEventsWithGivenTitle() { IEventsManager eventsManager = new EventsManagerFast(); eventsManager.AddEvent(sampleEvent); eventsManager.DeleteEventsByTitle(sampleEvent.Title); Assert.AreEqual(0, eventsManager.ListEvents(DateTime.MinValue, int.MaxValue).Count()); }
public void TestAddMultipleSameDateEvents() { EventsManagerFast eventManager = new EventsManagerFast(); Event ev = new Event(); ev.Title = "Rock party - 407026"; ev.Date = DateTime.ParseExact("2001-01-01T08:30:03", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev.Location = "home - 681328"; eventManager.AddEvent(ev); Event ev2 = new Event(); ev2.Title = "Chalga party"; ev2.Date = DateTime.ParseExact("2001-01-01T08:30:03", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev2.Location = "- 235165"; eventManager.AddEvent(ev2); Event ev3 = new Event(); ev3.Title = "Party LORA"; ev3.Date = DateTime.ParseExact("2001-01-01T08:30:03", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev3.Location = "at school - 4795"; eventManager.AddEvent(ev3); Assert.AreEqual(1, eventManager.EventsByDateCount); Assert.AreEqual(3, eventManager.EventsByTitleCount); }
public void DeleteEventsByCaseInsensitiveTitle() { IEventsManager eventsManager = new EventsManagerFast(); eventsManager.AddEvent(new Event { Date = DateTime.Now, Location = "Telerik Academy", Title = "High-Quality Code Exam", }); eventsManager.AddEvent(new Event { Date = DateTime.Now, Location = "Telerik Academy", Title = "HIGH-Quality CODE Exam", }); eventsManager.DeleteEventsByTitle("HIGH-Quality CODE Exam".ToLower()); Assert.AreEqual(0, eventsManager.ListEvents(DateTime.MinValue, int.MaxValue).Count()); }
public void AddDuplicateEvents() { IEventsManager eventsManager = new EventsManagerFast(); eventsManager.AddEvent(sampleEvent); eventsManager.AddEvent(sampleEvent); eventsManager.AddEvent(sampleEvent); Assert.AreEqual(3, eventsManager.ListEvents(DateTime.MinValue, int.MaxValue).Count()); }
public void DeleteElementsInEmptyList() { EventsManagerFast fastManager = new EventsManagerFast(); int expected = fastManager.DeleteEventsByTitle("Party 1"); int actual = 0; Assert.AreEqual(expected, actual); }
public void AddDuplicatedEvent() { EventsManagerFast fastManager = new EventsManagerFast(); var date = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(date, "Party 3", "Sofia"); fastManager.AddEvent(firstEvent); fastManager.AddEvent(firstEvent); Assert.AreEqual(2, fastManager.Count); }
public void TestAddSingleEvent() { EventsManagerFast eventManager = new EventsManagerFast(); Event ev = new Event(); ev.Title = "Rock party - 407026"; ev.Date = DateTime.ParseExact("2012-03-31T23:59:57", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev.Location = "home - 681328"; eventManager.AddEvent(ev); Assert.AreEqual(1, eventManager.EventsByTitleCount); }
public void TestAddEvent_When3EventsAdded() { EventsManagerFast manager = new EventsManagerFast(); //first event string titleCSharp = "C# exam"; var dateCSharp = DateTime.ParseExact( "2012-03-26T09:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); string locationCSharp = "Home"; var evCSharp1 = new Event { date = dateCSharp, Title = titleCSharp, Location = locationCSharp, }; manager.AddEvent(evCSharp1); //second event string title = "C++ exam"; var dateCPlus = DateTime.ParseExact( "2011-02-26T09:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); string locationCPlus = "Academy"; var evCPlus = new Event { date = dateCPlus, Title = title, Location = locationCPlus, }; //third event string titleCSharp2 = "C# exam"; var dateCSharp2 = DateTime.ParseExact( "2012-03-26T09:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); string locationCSharp2 = "Home"; var evCSharp2 = new Event { date = dateCSharp2, Title = titleCSharp2, Location = locationCSharp2, }; manager.AddEvent(evCSharp2); var result = manager.ListEvents(dateCSharp, 2); int actual = result.Count(); Assert.AreEqual(2, actual); }
public void TestDeleteEventsByTitle_WhenMultipleEventsAreAddedAndNoneOfThemMatch() { EventsManagerFast eventsManager = new EventsManagerFast(); int totalNumberOfEvents = 10; for (int i = 0; i < totalNumberOfEvents; i++) { eventsManager.AddEvent(new Event(DateTime.Now, "Title")); } int numberOfDeletedEvents = eventsManager.DeleteEventsByTitle("Title1"); Assert.AreEqual(0, numberOfDeletedEvents); }
public void Add5000Events() { EventsManagerFast fastManager = new EventsManagerFast(); var date = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); for (int i = 0; i < 5000; i++) { Event newEvent = new Event(date, "Party " + i, "Sofia"); fastManager.AddEvent(newEvent); } Assert.AreEqual(5000, fastManager.Count); }
public void TestDeleteEventsByTitle_WhenMultipleEventsAreAddedAndOnlyOneMatches() { EventsManagerFast eventsManager = new EventsManagerFast(); for (int i = 0; i < 10; i++) { eventsManager.AddEvent(new Event(DateTime.Now, "Title")); } eventsManager.AddEvent(new Event(DateTime.Now, "Title1")); int numberOfDeletedEvents = eventsManager.DeleteEventsByTitle("Title1"); Assert.AreEqual(1, numberOfDeletedEvents); }
public void TestDeleteEventsByTitle_WhenMultipleEventsAreAddedAndSomeOfThemMatch() { EventsManagerFast eventsManager = new EventsManagerFast(); int totalNumberOfEvents = 10; for (int i = 0; i < totalNumberOfEvents; i++) { string titleIndex = (i % 2).ToString(); eventsManager.AddEvent(new Event(DateTime.Now, "Title" + titleIndex)); } int numberOfDeletedEvents = eventsManager.DeleteEventsByTitle("Title0"); Assert.AreEqual(totalNumberOfEvents / 2, numberOfDeletedEvents); }
public void AddEventEmptyAndNullLocationTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var secondDate = DateTime.ParseExact("2012-05-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var thirdDate = DateTime.ParseExact("2012-09-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Party 1"); // empty location Event secondEvent = new Event(secondDate, "Party 2", null); // null location Event thirdEvent = new Event(thirdDate, "Party 3", "Sofia"); fastManager.AddEvent(firstEvent); fastManager.AddEvent(secondEvent); fastManager.AddEvent(thirdEvent); Assert.AreEqual(3, fastManager.Count); }
public void AddEventTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var secondDate = DateTime.ParseExact("2012-05-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var thirdDate = DateTime.ParseExact("2012-09-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Party 1", "Sofia"); Event secondEvent = new Event(secondDate, "Party 2", "Burgas"); Event thirdEvent = new Event(thirdDate, "Party 3", "Varna"); fastManager.AddEvent(firstEvent); fastManager.AddEvent(secondEvent); fastManager.AddEvent(thirdEvent); Assert.AreEqual(3, fastManager.Count); }
public static void Main() { var eventManager = new EventsManager(); var eventManagerFast = new EventsManagerFast(); var calendarEventProcessor = new CalendarEventProcessor(eventManagerFast); while (true) { string inputLine = Console.ReadLine(); if (inputLine == "End" || inputLine == null) { break; } var processedCommand = calendarEventProcessor.ProcessCommand(Command.Parse(inputLine)); Console.WriteLine(processedCommand); } }
public void TestAddEvent_When1EventAdded() { var date = DateTime.ParseExact( "2012-03-26T09:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); string title = "C# exam"; var ev = new Event { date = date, Title = title, Location = null, }; EventsManagerFast manager = new EventsManagerFast(); manager.AddEvent(ev); var result = manager.ListEvents(date, 1); int actual = result.Count(); Assert.AreEqual(1, actual); }
public static void Main() { // Console.SetIn(new StreamReader("../../../CalendarSystem.Tests/Tests/test.010.in.txt")); // Console.SetIn(new StreamReader("../../input.txt")); // IEventsManager eventsManager = new EventsManager(); IEventsManager eventsManager = new EventsManagerFast(); CommandExecutor commandExecutor = new CommandExecutor(eventsManager); StringBuilder output = new StringBuilder(); for (string line = null; (line = ReadCommand()) != "End"; ) { Command command = Command.Parse(line); string result = commandExecutor.ProcessCommand(command); output.AppendLine(result); // Console.WriteLine(result); } Console.Write(output); }
public static void Main() { // Console.SetIn(new StreamReader("../../../CalendarSystem.Tests/Tests/test.010.in.txt")); // Console.SetIn(new StreamReader("../../input.txt")); // IEventsManager eventsManager = new EventsManager(); IEventsManager eventsManager = new EventsManagerFast(); CommandExecutor commandExecutor = new CommandExecutor(eventsManager); StringBuilder output = new StringBuilder(); for (string line = null; (line = ReadCommand()) != "End";) { Command command = Command.Parse(line); string result = commandExecutor.ProcessCommand(command); output.AppendLine(result); // Console.WriteLine(result); } Console.Write(output); }
internal static void Main() { var eventsManager = new EventsManagerFast(); var commandExecutor = new CommandExecutor(eventsManager); bool shouldReadCommands = true; while (shouldReadCommands) { string command = Console.ReadLine(); if (command == "End" || string.IsNullOrEmpty(command)) { shouldReadCommands = false; } else { Command parsedCommand = Command.Parse(command); string commandResult = commandExecutor.ProcessCommand(parsedCommand); Console.WriteLine(commandResult); } } }
public static void Main() { EventsManagerFast eventsManager = new EventsManagerFast(); CommandExecutor commandExecutor = new CommandExecutor(eventsManager); StringBuilder outputResult = new StringBuilder(); while (true) { string commandType = Console.ReadLine(); if (commandType == "End" || commandType == null) { break; } // using StringBuilder and one Console.WriteLine instead of Console.WriteLine every time // because print on console is very slow operation Command currentCommand = Command.Parse(commandType); outputResult.AppendLine(commandExecutor.ProcessCommand(currentCommand)); } Console.WriteLine(outputResult.ToString().Trim()); }
public static void Main() { var eventManager = new EventsManagerFast(); var cmdExecutor = new CommandExecutor(eventManager); while (true) { string inputLine = Console.ReadLine(); if (inputLine == "End" || inputLine == null) { break; } try { Console.WriteLine(cmdExecutor.ProcessCommand(Command.Parse(inputLine))); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public void TestAddMultipleEvents() { EventsManagerFast eventManager = new EventsManagerFast(); Event ev = new Event(); ev.Title = "Rock party - 407026"; ev.Date = DateTime.ParseExact("2012-03-31T23:59:57", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev.Location = "home - 681328"; eventManager.AddEvent(ev); Event ev2 = new Event(); ev2.Title = "party Lora - 198672"; ev2.Date = DateTime.ParseExact("2001-01-01T10:30:03", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev2.Location = "- 235165"; eventManager.AddEvent(ev2); Event ev3 = new Event(); ev3.Title = "Chalga party - 974464"; ev3.Date = DateTime.ParseExact("2001-01-01T10:30:01", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); ev3.Location = "at school - 4795"; eventManager.AddEvent(ev3); Assert.AreEqual(3, eventManager.EventsByTitleCount); }
public void CreateEventsManagerFastInstance() { this.manager = new EventsManagerFast(); }
public void DeleteEventTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var secondDate = DateTime.ParseExact("2012-05-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Party 1", "Sofia"); Event secondEvent = new Event(secondDate, "Party 2", "Burgas"); fastManager.AddEvent(firstEvent); fastManager.AddEvent(secondEvent); int expected = fastManager.DeleteEventsByTitle("Party 2"); int actual = 1; Assert.AreEqual(1, fastManager.Count); Assert.AreEqual(expected, actual); }
public void ListMatchingEventsFirstOnlyTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var secondDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var thirdDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var fourthDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Sofia Party", "Sofia"); Event secondEvent = new Event(secondDate, "Burgas Party", "Burgas"); Event thirdEvent = new Event(thirdDate, "Varna Party", "Varna"); Event fourthEvent = new Event(fourthDate, "Na selo Party", "Na selo"); fastManager.AddEvent(firstEvent); fastManager.AddEvent(secondEvent); fastManager.AddEvent(thirdEvent); fastManager.AddEvent(fourthEvent); var date = DateTime.ParseExact("2012-01-20T21:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var result = fastManager.ListEvents(date, 1); Assert.AreEqual(1, result.Count()); Assert.AreSame(secondEvent, result.First()); // because Burgas is alphabetically first }
public void ListNoResultTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Party 1", "Sofia"); fastManager.AddEvent(firstEvent); var date = DateTime.ParseExact("2012-01-21T21:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); var result = fastManager.ListEvents(date, 5); Assert.AreEqual(0, result.Count()); }
public void ListSingleEventTest() { EventsManagerFast fastManager = new EventsManagerFast(); var firstDate = DateTime.ParseExact("2012-01-21T20:00:00", "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); Event firstEvent = new Event(firstDate, "Party 1", "Sofia"); fastManager.AddEvent(firstEvent); var result = fastManager.ListEvents(firstDate, 1); // search for the same date Assert.AreEqual(1, result.Count()); Assert.AreSame(firstEvent, result.First()); }