public void TestLocation() { Assert.AreEqual(RoomDisplayNameParser.ParseLocation("Tampere - Adobe ()"), "Tampere"); Assert.AreEqual(RoomDisplayNameParser.ParseLocation("Tre - Adobe (4)"), "Tampere"); Assert.AreEqual(RoomDisplayNameParser.ParseLocation("Helsinki - Adobe (7)"), "Helsinki"); Assert.AreEqual(RoomDisplayNameParser.ParseLocation("Hki - Adobe (4)"), "Helsinki"); Assert.AreEqual(RoomDisplayNameParser.ParseLocation("Tampere - Helsinki (5) Video"), "Tampere"); }
public void TestCapacity() { Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (4)"), 4); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (7++)"), 7); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Neukkari1 (7++)"), 7); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Helsinki - Alfa-4 (7++)"), 7); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Helsinki - Alfa 35 (4)"), 4); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (-3)"), 3); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Oulu - Toripolliisi (12) Video Asiakas"), 12); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (>7)"), 7); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (~4)"), 4); Assert.AreEqual(RoomDisplayNameParser.ParseCapacity("Tampere - Adobe (4 tai enemmän)"), 4); }
public void TestHasVideoSupport() { Assert.True(RoomDisplayNameParser.ParseHasVideoConferencingSupport("Tre - Linus (5) Video")); Assert.True(RoomDisplayNameParser.ParseHasVideoConferencingSupport("Tre - Linus (5) video")); Assert.True(RoomDisplayNameParser.ParseHasVideoConferencingSupport("Tre - Linus (5) VidEo")); }
public void TestIsNotSuitableForClientMeetings() { Assert.False(RoomDisplayNameParser.ParseSuitabilityForClientMeetings("Tampere (4) vIdeO sisainen")); Assert.False(RoomDisplayNameParser.ParseSuitabilityForClientMeetings("Tampere (4) vIdeO asijakas sisainen")); }
public void TestIsSuitableForClientMeetings() { Assert.True(RoomDisplayNameParser.ParseSuitabilityForClientMeetings("Helsinki (5) Asiakas")); Assert.True(RoomDisplayNameParser.ParseSuitabilityForClientMeetings("Tampere (4) asiakas")); }
public void TestIsNotSuitableForInternalMeetings() { Assert.False(RoomDisplayNameParser.ParseSuitabilityForInternalMeetings("Oulu sisainen")); }
public void TestIsSuitableForInternalMeetings() { Assert.True(RoomDisplayNameParser.ParseSuitabilityForInternalMeetings("Oulu Sisäinen")); }
public void TestHasNoVideoSupport() { Assert.False(RoomDisplayNameParser.ParseHasVideoConferencingSupport("Helsinki - Mavideomaa (5) Sisäinen")); Assert.False(RoomDisplayNameParser.ParseHasVideoConferencingSupport("Helsinki - Neukkari (3) Vide")); }
/** Returns a list of rooms and their bookings. The returned list of rooms is sorted by room location. */ public IEnumerable <Room> GetRooms(DateTime dateTime) { Logger.Logger.Info("Getting rooms for date: " + dateTime); var dateString = dateTime.ToString("yyyy-MM-dd"); Object connectionLock = null; if (connectionLocks.ContainsKey(dateString)) { Logger.Logger.Info("Got connection lock for date: " + dateString); connectionLock = connectionLocks[dateString]; } else { connectionLock = new object(); connectionLocks.Add(dateString, connectionLock); Logger.Logger.Info("Creating a new connection lock for date: " + dateString); } lock (connectionLock) { // While we waited for the lock, it is possible that another thread // retrieved the rooms from Exchange. So, before making a connection, // try to retrieve the Rooms from cache. if (ConfigurationManager.AppSettings["UseRoomCaching"].Equals("true") && RoomCacheManager.FindCachedRoomsForDay(dateTime) != null) { Logger.Logger.Info("Got rooms from cache for date: " + dateString); var cachedRooms = RoomCacheManager.FindCachedRoomsForDay(dateTime); return(cachedRooms.GetRooms()); } Logger.Logger.Info("Connecting to Exchange to retrieve rooms for date: " + dateString); var ad = new ADConnector(); var rooms = ad.GetRoomsList(); RoomDisplayNameParser.ParseDisplayNameForRooms(rooms); rooms = ApplySpecialFilters(rooms); AddAvailabilityInfoToRooms(rooms, dateTime); rooms = rooms.OrderBy(room => room.Location).ThenBy(room => room.Name).ToList(); var allResultsOk = true; foreach (var room in rooms) { if (room.Error) { allResultsOk = false; break; } } if (allResultsOk) { Logger.Logger.Info("Caching Exchange response."); RoomCacheManager.CacheRooms(rooms, dateTime); } else { Logger.Logger.Info("Not caching Exchange response with errors."); } return(rooms); } }