public void AddEvent(Event eventItem)
        {
            string eventTitleLowerCase = eventItem.Title.ToLowerInvariant();

            this.eventsByTitle.Add(eventTitleLowerCase, eventItem);
            this.eventsByDate.Add(eventItem.Date, eventItem);
        }
Ejemplo n.º 2
0
        private string ProcessCommandAddEvent(Command command)
        {
            if (command.Params.Length != 2 && command.Params.Length != 3)
            {
                throw new ArgumentException("Invalid number of command parameters.");
            }

            DateTime date = DateTime.ParseExact(command.Params[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
            string title = command.Params[1];
            string location;

            if (command.Params.Length == 2) // there isn't location
            {
                location = null;
            }
            else
            {
                location = command.Params[2];
            }

            Event newEvent = new Event()
            {
                Date = date,
                Title = title,
                Location = location
            };

            this.eventsManager.AddEvent(newEvent);

            return "Event added";
        }
        private string AddEvent(Command command)
        {
            var date = DateTime.ParseExact(
                command.paramms[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
            if (command.paramms.Length == 2)
            {
                var ev = new Event
                {
                    date = date,
                    Title = command.paramms[1],
                    Location = null,
                };

                this.eventsManager.AddEvent(ev);
            }

            if (command.paramms.Length == 3)
            {
                var ev = new Event
                {
                    date = date,
                    Title = command.paramms[1],
                    Location = command.paramms[2],
                };

                this.eventsManager.AddEvent(ev);

            }
                return "Event added";
        }
Ejemplo n.º 4
0
        public void DeleteEventsByTitle_ValidInputAndValidDeleting()
        {
            string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            int numberOfAddedEvents = 50;
            int numberOfOtherEvents = 20;

            string date = "2012-01-21T20:00:00";
            DateTime eventDate = DateTime.ParseExact(date, dateTimeFormat, CultureInfo.InvariantCulture);
            string eventTitle = "party Viki";
            Event currentEvent = new Event(eventDate, eventTitle);

            EventsManager currentEventManager = new EventsManager();
            for (int i = 0; i < numberOfAddedEvents; i++)
            {
                currentEventManager.AddEvent(currentEvent);
            }

            string otherDate = "2015-01-21T20:00:00";
            DateTime otherEventDate = DateTime.ParseExact(otherDate, dateTimeFormat, CultureInfo.InvariantCulture);
            string otherEventTitle = "C# exam";
            Event otherEvent = new Event(otherEventDate, otherEventTitle);
            for (int i = 0; i < numberOfOtherEvents; i++)
            {
                currentEventManager.AddEvent(otherEvent);
            }

            int deletedEvents = currentEventManager.DeleteEventsByTitle(eventTitle);
            bool isNumberOfDeletedEventsCorrect = deletedEvents == numberOfAddedEvents;

            Assert.IsTrue(isNumberOfDeletedEventsCorrect, "Number of deleted events is incorect!");
        }
Ejemplo n.º 5
0
        public void ListEvents_CountIsBigger()
        {
            string dateTimeFormat = "yyyy-MM-ddTHH:mm:ss";
            int numberOfAddedEvents = 50;
            int numberOfOtherEvents = 20;

            string date = "2012-01-21T20:00:00";
            DateTime eventDate = DateTime.ParseExact(date, dateTimeFormat, CultureInfo.InvariantCulture);
            string eventTitle = "party Viki";
            Event currentEvent = new Event(eventDate, eventTitle);

            EventsManager currentEventManager = new EventsManager();
            for (int i = 0; i < numberOfAddedEvents; i++)
            {
                currentEventManager.AddEvent(currentEvent);
            }

            string otherDate = "2015-01-21T20:00:00";
            DateTime otherEventDate = DateTime.ParseExact(otherDate, dateTimeFormat, CultureInfo.InvariantCulture);
            string otherEventTitle = "C# exam";
            Event otherEvent = new Event(otherEventDate, otherEventTitle);
            for (int i = 0; i < numberOfOtherEvents; i++)
            {
                currentEventManager.AddEvent(otherEvent);
            }

            IEnumerable<Event> foundEvents = currentEventManager.ListEvents(eventDate, 20);
            bool isNumberOfFoundEventsCorrect = foundEvents.Count() == 20;

            Assert.IsTrue(isNumberOfFoundEventsCorrect, "Number of found events is incorect!");
        }
        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);
        }
        private string ExecuteAddEvent(Command command)
        {
            var date = DateTime.ParseExact(
                command.Parameters[0],
                "yyyy-MM-ddTHH:mm:ss",
                CultureInfo.InvariantCulture);

            var eventItem = new Event
            {
                Date = date,
                Title = command.Parameters[1],
            };

            if (command.Parameters.Length == 2)
            {
                eventItem.Location = null;
            }
            else if (command.Parameters.Length == 3)
            {
                eventItem.Location = command.Parameters[2];
            }
            else
            {
                throw new ArgumentException("WTF " + command.Name + " is?", "command.CommandName");
            }

            this.eventsManager.AddEvent(eventItem);

            return "Event added";
        }
Ejemplo n.º 8
0
        public string ProcessCommand(Command command)
        {
            if (command.CommandName == "AddEvent")
            {
                string location;
                if (command.Parameters.Length == 2)
                {
                    location = null;
                }
                else
                {
                    location = command.Parameters[2];
                }

                var date = DateTime.ParseExact(command.Parameters[0], DateFormat, CultureInfo.InvariantCulture);
                var title = command.Parameters[1];

                Event newEvent = new Event(date, title, location);

                this.eventsManagerList.AddEvent(newEvent);

                return "Event added";
            }

            if ((command.CommandName == "DeleteEvents") && (command.Parameters.Length == 1))
            {
                int numberOfAddedEvents = this.eventsManagerList.DeleteEventsByTitle(command.Parameters[0]);

                if (numberOfAddedEvents == 0)
                {
                    return "No events found";
                }

                return numberOfAddedEvents + " events deleted";
            }

            if ((command.CommandName == "ListEvents") && (command.Parameters.Length == 2))
            {
                var date = DateTime.ParseExact(command.Parameters[0], DateFormat, CultureInfo.InvariantCulture);
                var numberOfElementsToList = int.Parse(command.Parameters[1]);
                var eventsList = this.eventsManagerList.ListEvents(date, numberOfElementsToList).ToList();

                if (!eventsList.Any())
                {
                    return "No events found";
                }

                StringBuilder result = new StringBuilder();
                foreach (var ev in eventsList)
                {
                    result.AppendLine(ev.ToString());
                }

                return result.ToString().Trim();
            }

            throw new ArgumentException("Invalid command name: " + command.CommandName);
        }
        public void AddEventEmptyTitleTest()
        {
            EventsManager manager = new EventsManager();
            Event occasion = new Event("", "location", DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
Ejemplo n.º 10
0
        public void AddEvent(Event ev)
        {
            if (ev == null)
            {
                throw new ArgumentNullException("Event can't be null.");
            }

            this.events.Add(ev);
        }
Ejemplo n.º 11
0
        public string ProcessCommand(Command command)
        {
            if (command.Name == "AddEvent")
            {
                var eventDate = DateTime.ParseExact(command.Parameters[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
                string eventTitle = command.Parameters[1];

                string eventLocation = string.Empty;
                if (command.Parameters.Length == 3)
                {
                    eventLocation = command.Parameters[2];
                }

                var eventToAdd = new Event(eventTitle, eventLocation, eventDate);

                this.Manager.AddEvent(eventToAdd);

                return "Event added";
            }
            else if ((command.Name == "DeleteEvents") && (command.Parameters.Length == 1))
            {
                int count = this.Manager.DeleteEventsByTitle(command.Parameters[0]);

                if (count == 0)
                {
                    return "No events found.";
                }

                return count + " events deleted";
            }
            else if ((command.Name == "ListEvents") && (command.Parameters.Length == 2))
            {
                var date = DateTime.ParseExact(command.Parameters[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
                var count = int.Parse(command.Parameters[1]);
                var events = this.Manager.ListEvents(date, count).ToList();
                var eventsList = new StringBuilder();

                if (events.Count == 0)
                {
                    return "No events found";
                }

                foreach (var eventToList in events)
                {
                    eventsList.AppendLine(eventToList.ToString());
                }

                string result = eventsList.ToString().Trim();
                return result;
            }
            else
            {
                throw new InvalidCommandException("Command " + command.Name + " is invalid");
            }
        }
        public void AddEventInvalidFormatLocationTest()
        {
            EventsManager manager = new EventsManager();
            string location = "  l| \n ocation  ";

            Event occasion = new Event("title", location, DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
Ejemplo n.º 13
0
        public int CompareTo(Event otherEvent)
        {
            int result = DateTime.Compare(this.EventDate, otherEvent.EventDate);

            if (result == 0)
            {
                result = string.Compare(this.Title, otherEvent.Title, StringComparison.Ordinal);
            }

            return result;
        }
Ejemplo n.º 14
0
        public void AddEvent(Event ev)
        {
            if (ev == null)
            {
                throw new ArgumentNullException("Event can't be null.");
            }

            string eventTitleLowerCase = ev.Title.ToLower();
            this.titles.Add(eventTitleLowerCase, ev);
            this.dates.Add(ev.Date, ev);
        }
        public void AddEventInvalidFormatTitleTest()
        {
            EventsManager manager = new EventsManager();
            string title = "  t| \n itle  ";

            Event occasion = new Event(title.ToString(), "location", DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
        public void EventManagerAddEvent()
        {
            Event e = new Event();

            e.Date = new DateTime(2000, 10, 10);
            e.Location = "Pri baba";
            e.Title = "Grupovo gushene na patki :)))";

            EventsManager eventsManager = new EventsManager();
            eventsManager.AddEvent(e);
        }
        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);
        }
        /// <summary>
        /// Adds an event to the list of events.
        /// If the event already exists, it is added again (duplicates are accepted).
        /// </summary>
        /// <param name="event">The event to be added.</param>
        public void AddEvent(Event @event)
        {
            if (@event == null)
            {
                throw new ArgumentNullException("event");
            }

            string eventTitleLowerCase = @event.Title.ToLowerInvariant();
            this.eventsByTitle.Add(eventTitleLowerCase, @event);
            this.eventsByDate.Add(@event.Date, @event);
        }
        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 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 EventManagerDeleteEventByTitleOneEvent()
        {
            Event e = new Event();

            e.Date = new DateTime(2000, 10, 10);
            e.Location = "Pri baba";
            e.Title = "Grupovo gushene na patki :)))";

            EventsManager eventsManager = new EventsManager();
            eventsManager.AddEvent(e);

            var expected = eventsManager.DeleteEventsByTitle(e.Title);
            Assert.AreEqual(expected, 1);
        }
        public void AddEventTooLongLocationTest()
        {
            EventsManager manager = new EventsManager();
            StringBuilder location = new StringBuilder();
            for (int i = 0; i <= 150; i++)
            {
                location.Append("location");
            }
            Event occasion = new Event("title", location.ToString(), DateTime.Now);
            manager.AddEvent(occasion);

            var testObj = (MultiDictionary<string, Event>)GetInstanceField(typeof(EventsManager), manager, "_eventsDictionary");
            Assert.AreNotEqual(1, testObj.Count);
        }
Ejemplo n.º 24
0
        private string ProcessAddEvent(Command command)
        {
            if (!(command.Parameters.Count == 2 || command.Parameters.Count == 3))
            {
                throw new FormatException("Invalid number of parameters: " + command.Parameters.Count);
            }

            DateTime date = ParseDate(command.Parameters[0]);
            string title = command.Parameters[1];
            string location = (command.Parameters.Count == 3) ? command.Parameters[2] : null;

            Event @event = new Event(date, title, location);
            this.eventsManager.AddEvent(@event);
            return "Event added";
        }
        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);
        }
Ejemplo n.º 26
0
        private string ProcessCommandAddWithThreeParams(Command command)
        {
            DateTime date = DateTime.ParseExact(command.Parameters[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
            Event ev = new Event
            {
                DateTime = date,
                Title = command.Parameters[1],
                Location = command.Parameters[2],
            };

            this.eventsProcessor.AddEvent(ev);

            string message = "Event added";

            return message;
        }
        private string AddEvent(Command cmd)
        {
            DateTime date = DateTime.ParseExact(cmd.CommandParams[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);

            if (cmd.CommandParams.Length == 2)
            {
                Event currentEvent = new Event(date, cmd.CommandParams[1], null);
                this.eventsManager.AddEvent(currentEvent);
            }
            else
            {
                Event currentEvent = new Event(date, cmd.CommandParams[1], cmd.CommandParams[2]);
                this.eventsManager.AddEvent(currentEvent);
            }

            return "Event added";
        }
        private string AddEventCommand(params string[] parameters)
        {
            var date = DateTime.ParseExact(parameters[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
            var title = parameters[1];
            var location = parameters.Length > 2 ? parameters[2] : null;

            var e = new Event
            {
                Date = date,
                Title = title,
                Location = location
            };

            this.eventsManager.AddEvent(e);

            return "Event added";
        }
        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 void TestDeleteEvents_Delete1CheckCaseSensitivity()
        {
            FastEventsManager eventManager = new FastEventsManager();
            Event eventItem = new Event();
            eventItem.Date = DateTime.ParseExact(
                "2001-01-01T10:00:00",
                "yyyy-MM-ddTHH:mm:ss",
                CultureInfo.InvariantCulture);

            eventItem.Title = "pArTy";
            eventItem.Location = "nowhere";
            eventManager.AddEvent(eventItem);

            int deletedEvents = eventManager.DeleteEventsByTitle("party");

            Assert.AreEqual(1, deletedEvents);
        }