Skip to content

timsan7sk/Antiban

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание C# Flowsell.me

Реализовать Антибан систему

Нужно реализовать класс Antiban, чтобы он проходил все юнит тесты в AntibanTests.cs

Входные данные:

класс EventMessage, с полями:

  • номер_телефона
  • время когда пришло событие в систему
  • приоритет (0 - сервисные, 1 - рассылки)

Пример:

Предположим, что в систему пришли такие события:

  1. Номер1, 0, 12:00:00
  2. Номер2, 0, 12:01:00
  3. Номер1, 1, 12:01:25
  4. Номер2, 1, 12:01:35
  5. Номер1, 1, 12:01:50
  6. Номер2, 0, 12:02:00
  7. Номер1, 0, 12:02:01

То выходной порядок должен быть таким:

  1. Номер1, 12:00:00 (1)
  2. Номер2, 12:01:00 (2)
  3. Номер1, 12:01:25 (3)
  4. Номер2, 12:02:00 (4) - т.к. была отправка по этому номеру в 12:01:00, следующая отправка только через минуту по этому номеру
  5. Номер1, 12:02:25 (7) - т.к. предыдущая отправка по этому номеру была в 12:01:25, следующая отправка только через минуту по этому номеру
  6. Номер2, 12:03:00 (6) - т.к. предыдущая отправка по этому номеру будет в 12:02:00, следующая отправка только через минуту по этому номеру
  7. Номер1, 12:01:25 + 24 часа (5) - т.к. ранее уже была отправлена рассылка (приоритет = 1) по этому номеру, то следующая отправка по рассылка + 24 часа

Должны соблюдаться такие правила:

  • период между сообщениями на разные номера, должен быть не менее 10 сек. Для теста возьмем, что равно 10 сек
  • период между сообщениями на один номер, должен быть не менее 1 минуты. Для теста возьмем, что равно 1 минуте
  • период между сообщениями с приоритетом=1 на один номер, не менее 24 часа. Т.е. должна отправлять только одна рассылка в день на один номер.

В случае если юнит тесты некорректны, просим открыть Issue в этом репозитории

About

Flowsell.me C# Test Exercise

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages