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();
                }
        }
Exemple #2
0
        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));
        }