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()); }