static async Task Main(string[] args) { using (var setCache = new SetCache()) using (var messageQueueReader = new MessageQueueReader <Visit>(new PushCampaignConfiguration(), item => DateTime.Now.ToString("u"))) { Console.ForegroundColor = ConsoleColor.Green; Console.Title = CONSOLE_TITLE; Console.WriteLine($" [--- {CONSOLE_TITLE} ---]"); if (VERBOSE) { Console.WriteLine(" [*] Waiting for messages."); } var pushNotificationProviderFactory = new PushNotificationProviderFactory(Console.Out); _campaignPusher = new CampaignPusher(setCache, pushNotificationProviderFactory); var commandResult = await messageQueueReader.StartReadingAsync(HandleData); if (commandResult.IsInvalid) { Console.WriteLine(" Error opening connection to read queue."); Console.ReadLine(); return; } if (VERBOSE) { Console.WriteLine(" Press [enter] any time to exit."); } Console.ReadLine(); } }
private VisitsController SetupController(IEnumerable <Visit> visits = null, StringBuilder stringBuilder = null) { visits = visits ?? new List <Visit>(); var visitDataStore = new MockVisitStore(visits.Select(model => VisitMapper.ToEntity(model)).ToList()); var campaigns = CampaignSamples.Get().Select(model => CampaignMapper.ToEntity(model)).ToList(); var campaignStore = new MockCampaignStore(campaigns); var campaignSearch = new SimpleCampaignSearch(campaignStore); var stringWriter = new StringWriter(stringBuilder ?? new StringBuilder()); var pushNotificationProviderFactory = new PushNotificationProviderFactory(stringWriter); var manager = new VisitManager(visitDataStore, campaignSearch, pushNotificationProviderFactory); return(new VisitsController(manager, logger: null)); }