Beispiel #1
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));
        }
        public ActionResult PostBatch([FromBody] IEnumerable <Visit> visits)
        {
            var validations       = visits.Select(campaign => campaign.Validate()).ToArray();
            var summaryValidation = new CommandNotification(validations);

            if (summaryValidation.IsInvalid)
            {
                return(StatusCode(500, summaryValidation.Notifications));
            }

            var entities = visits.Select(model => VisitMapper.ToEntity(model)).ToList();
            var result   = _visitManager.Load(entities);

            if (result.IsInvalid)
            {
                return(StatusCode(500, result.Notifications));
            }

            return(Ok());
        }