AllReady.Controllers.CampaignApiController.GetCampaignsByPostalCode C# (CSharp) Метод

GetCampaignsByPostalCode() приватный Метод

private GetCampaignsByPostalCode ( string zip, int miles ) : IEnumerable
zip string
miles int
Результат IEnumerable
        public IEnumerable<EventViewModel> GetCampaignsByPostalCode(string zip, int miles)
        {
            var model = new List<EventViewModel>();

            var campaigns = mediator.Send(new EventsByPostalCodeQuery { PostalCode = zip, Distance =  miles})
                .Select(x => x.Campaign)
                .Distinct();

            var campaignEvents = campaigns
                .SelectMany(x => x.Events)
                .ToList();

           campaignEvents.ForEach(campaignEvent => model.Add(new EventViewModel(campaignEvent)));

           return model;
        }
    }

Usage Example

        public void GetCampaignsByPostalCodeReturnsCorrectResults()
        {
            var event1 = new Event { Id = 1, CampaignId = 1 };
            event1.Campaign = new Campaign { Id = 1, Events = new List<Event> { event1 }, ManagingOrganization = new Organization() };

            var event2 = new Event { Id = 2 };
            var event3 = new Event { Id = 3 };
            var campaign2 = new Campaign { Id = 2, Events = new List<Event> { event2, event3 }, ManagingOrganization = new Organization() };

            event2.CampaignId = campaign2.Id;
            event2.Campaign = campaign2;

            event3.CampaignId = campaign2.Id;
            event3.Campaign = campaign2;

            var allEvents = new List<Event> { event1, event2, event3 };

            var mediator = new Mock<IMediator>();
            mediator.Setup(x => x.Send(It.IsAny<EventsByPostalCodeQuery>())).Returns(allEvents);

            var sut = new CampaignApiController(mediator.Object);
            var results = sut.GetCampaignsByPostalCode(It.IsAny<string>(), It.IsAny<int>());

            Assert.Equal(results.Count(), allEvents.Count);
        }
All Usage Examples Of AllReady.Controllers.CampaignApiController::GetCampaignsByPostalCode