Пример #1
0
        // Метод для получения списка адресатов, подписанных на событие
        private List<string> GetLinkList(string linkName, string eventName)
        {
            List<string> linkList = new List<string>();
            try
            {
                // Создаем подключение к БД
                using (NotificationServiceDbContext nsDbContext =
                    new NotificationServiceDbContext())
                {                    
                    // Если нужна рассылка по EMail                    
                    if (linkName == "Email")
                        linkList =
                            (from item in nsDbContext.Destinations
                             where (item.EventName == eventName || item.EventName == "All")
                             select item.EMail).ToList<string>();
                    // Если нужна рассылка по SMS
                    if (linkName == "SMS")
                        linkList =
                            (from item in nsDbContext.Destinations
                             where (item.EventName == eventName || item.EventName == "All")
                             select item.Telephone).ToList<string>();                    
                }
            }
            catch (Exception ex)
            {
                // Запись данных об ошибке в лог-файл
                LittleLogger.Error(ex.Message);
            }

            return linkList;
        }
Пример #2
0
        // Конструктор
        public NotificationService()
        {
            try
            {                
                // Создаем подключение к БД
                using (NotificationServiceDbContext nsDbContext =
                    new NotificationServiceDbContext())
                {
                    // Устанаваливаем стратегию инициализации БД
                    Database.SetInitializer(new NotificationServiceDbInitializer());
                    // Инициализируем БД, наполняя тестовыми данными через метод Seed
                    nsDbContext.Database.Initialize(false);
                }
            }
            catch (Exception ex)
            {
                // Запись данных об ошибке в лог-файл
                NotificationHelper.GetInstance().LittleLogger.Error(ex.Message);
            }

        }
        public void SmsSenderTest()
        {
            // Создаем подключение к БД
            using (NotificationServiceDbContext nsDbContext =
                new NotificationServiceDbContext())
            {
                // Устанаваливаем стратегию инициализации БД
                Database.SetInitializer(new NotificationServiceDbInitializerTest());
                // Инициализируем БД, наполняя тестовыми данными через метод Seed
                nsDbContext.Database.Initialize(true);

                // Очищаем файл с данными совершенных тестовых рассылок
                using (StreamWriter streamWriter = new StreamWriter("SMS.txt"))
                {
                    streamWriter.Write("");
                }

                // Рассылка сообщений адресатам на номер телефона по SMS
                string eventName_1 = "Php";
                string eventName_2 = "CSharp";
                string message = "test_message";
                NotificationHelper.GetInstance().SmsSender(
                    eventName_1, message);
                NotificationHelper.GetInstance().SmsSender(
                    eventName_2, message);

                // Утверждение для тестовых данных в таблице Destination
                using (StreamReader streamReader = new StreamReader("SMS.txt"))
                {
                    Assert.AreEqual("[+76892563565]:[Php][test_message]",
                        streamReader.ReadLine());
                    Assert.AreEqual("[+78568963526]:[Php][test_message]",
                        streamReader.ReadLine());
                    Assert.AreEqual("[+74569683625]:[CSharp][test_message]",
                        streamReader.ReadLine());
                    Assert.AreEqual("[+78568963526]:[CSharp][test_message]",
                        streamReader.ReadLine());
                }
            }
        }
        public void DbInitializationTest()
        {
            // Создаем БД и наполняем тестовыми данными
            using (NotificationServiceDbContext nsDbContext = 
                        new NotificationServiceDbContext())
            {
                // Устанаваливаем стратегию инициализации БД
                Database.SetInitializer(new NotificationServiceDbInitializerTest());
                // Инициализируем БД, наполняя тестовыми данными через метод Seed
                nsDbContext.Database.Initialize(true);

                // В таблицах БД записи отсортированы по primary key в ascending порядке,
                // поэтому после заполнения таблиц БД тестовыми данными должны быть
                // верны утверждения:
                // для таблицы LinkList
                Assert.AreEqual("All", nsDbContext.LinkLists.ToList<LinkList>()[0].LinkName);
                Assert.AreEqual("EMail", nsDbContext.LinkLists.ToList<LinkList>()[1].LinkName);
                Assert.AreEqual("SMS", nsDbContext.LinkLists.ToList<LinkList>()[2].LinkName);
                // для таблицы EventList
                Assert.AreEqual("All", nsDbContext.EventLists.ToList<EventList>()[0].EventName);
                Assert.AreEqual("CSharp", nsDbContext.EventLists.ToList<EventList>()[1].EventName);
                Assert.AreEqual("Php", nsDbContext.EventLists.ToList<EventList>()[2].EventName);
                // для таблицы Priority
                Assert.AreEqual("Critical",
                    nsDbContext.Priorities.ToList<Priority>()[0].PriorityType);
                Assert.AreEqual("Low",
                    nsDbContext.Priorities.ToList<Priority>()[1].PriorityType);
                Assert.AreEqual("Middle",
                    nsDbContext.Priorities.ToList<Priority>()[2].PriorityType);
                // для таблицы Destination
                Assert.AreEqual("Programmer_1",
                    nsDbContext.Destinations.ToList<Destination>()[0].DestinationName);
                Assert.AreEqual("Programmer_2",
                    nsDbContext.Destinations.ToList<Destination>()[1].DestinationName);
                Assert.AreEqual("Programmer_3",
                    nsDbContext.Destinations.ToList<Destination>()[2].DestinationName);
            }
            
        }