コード例 #1
0
        private ConcertListViewModel GetSearchedConcert(IEnumerable <SearchResult <ConcertSearchHit> > searchResults, string searchValue)
        {
            // If search result matches a single event
            var intConcertId         = Convert.ToInt32(searchResults.First(r => r.Document.FullTitle == searchValue).Document.ConcertId);
            var selectedConcert      = _concertRepository.GetConcertById(intConcertId);
            var venuesList           = _venueRepository.GetVenues();
            var selectedConcertVenue = venuesList.Find(v => v.VenueId.Equals(selectedConcert.VenueId));

            selectedConcert.VenueModel = selectedConcertVenue;

            return(new ConcertListViewModel()
            {
                ConcertList = new List <ConcertListViewModel.ConcertViewModel>()
                {
                    new ConcertListViewModel.ConcertViewModel()
                    {
                        ConcertId = selectedConcert.ConcertId,
                        Name = selectedConcert.ConcertName,
                        Date = selectedConcert.ConcertDate,
                        Performer = selectedConcert.PerformerModel.ShortName,
                        Venue = selectedConcert.VenueModel.VenueName
                    }
                },
                VenueList = venuesList.Select(v => new ConcertListViewModel.VenueViewModel()
                {
                    VenueId = v.VenueId,
                    VenueName = v.VenueName,
                    CityId = v.VenueCityModel.CityId,
                    CityName = v.VenueCityModel.CityName,
                    StateId = v.VenueCityModel.StateModel.StateId,
                    StateName = v.VenueCityModel.StateModel.StateName,
                    ConcertCount = v.ConcertQty
                }).ToList()
            });
        }
コード例 #2
0
        private bool UpsertVenue(EventAdministrationViewModel viewModel, CityModel cityModelFromDb, out VenueModel venueModelFromDb)
        {
            // Add venue if it doesn't exist
            if (!string.IsNullOrWhiteSpace(viewModel.NewVenue))
            {
                venueModelFromDb = _venueRepository.GetVenues().FirstOrDefault(ven => String.CompareOrdinal(ven.VenueName, viewModel.NewVenue.Trim()) == 0);

                if (venueModelFromDb == null)
                {
                    venueModelFromDb = _venueRepository.AddNewVenue(viewModel.NewVenue, cityModelFromDb.CityId);

                    if (venueModelFromDb == null)
                    {
                        DisplayMessage(String.Format(" Failed to add new Venue '{0}'. Cannot Continue.", viewModel.NewVenue));
                        return(false);
                    }
                }
            }
            else
            {
                venueModelFromDb = _venueRepository.GetVenues().FirstOrDefault(ven => ven.VenueId == viewModel.VenueId);
            }

            return(true);
        }
コード例 #3
0
        public IActionResult Add()
        {
            AddViewModel addViewModel = new AddViewModel()
            {
                Categories    = _eventCategoryRepository.GetEventCategories(),
                SubCategories = _eventSubCategoryRepository.GetSubCategories(),
                Venues        = _venueRepository.GetVenues()
            };

            return(View(addViewModel));
        }
コード例 #4
0
        public ActionResult Index()
        {
            var domainModel = _venueRepository.GetVenues();

            var viewModel = new VenueIndexViewModel()
            {
                Venues = new List <VenueIndexViewModel.VenueViewModel>()
            };

            foreach (var venue in domainModel)
            {
                if (viewModel.Venues.All(v => v.VenueId != venue.VenueId))
                {
                    viewModel.Venues.Add(new VenueIndexViewModel.VenueViewModel()
                    {
                        VenueId     = venue.VenueId,
                        VenueName   = venue.VenueName,
                        Capacity    = venue.Capacity,
                        Description = venue.Description
                    });
                }
            }

            return(View(viewModel));
        }
コード例 #5
0
        protected ConcertListViewModel GetConcerts(int venueId = 0, int cityId = 0)
        {
            var concertList = _concertRepository.GetConcertList(venueId, cityId);
            var venueList   = _venueRepository.GetVenues(venueId, cityId);

            return(new ConcertListViewModel()
            {
                ConcertList = concertList.ConcertsList.Select(c => new ConcertListViewModel.ConcertViewModel()
                {
                    ConcertId = c.ConcertId,
                    Name = c.ConcertName,
                    Date = c.ConcertDate,
                    Performer = c.PerformerModel.ShortName,
                    Venue = c.VenueModel.VenueName
                }).ToList(),
                VenueList = venueList.Select(v => new ConcertListViewModel.VenueViewModel()
                {
                    VenueId = v.VenueId,
                    VenueName = v.VenueName,
                    CityId = v.VenueCityModel.CityId,
                    CityName = v.VenueCityModel.CityName,
                    StateId = v.VenueCityModel.StateModel.StateId,
                    StateName = v.VenueCityModel.StateModel.StateName,
                    ConcertCount = v.ConcertQty
                }).ToList()
            });
        }
コード例 #6
0
ファイル: VenueService.cs プロジェクト: kurthamilton/ODK
        public async Task <VersionedServiceResult <IReadOnlyCollection <Venue> > > GetVenues(long?currentVersion, Guid currentMemberId, Guid chapterId)
        {
            await _authorizationService.AssertMemberIsChapterMember(currentMemberId, chapterId);

            return(await _cacheService.GetOrSetVersionedCollection(
                       () => _venueRepository.GetVenues(chapterId),
                       () => _venueRepository.GetVenuesVersion(chapterId),
                       currentVersion,
                       chapterId));
        }
コード例 #7
0
        public async Task <IReadOnlyCollection <VenueStats> > GetChapterVenueStats(Guid currentMemberId, Guid chapterId)
        {
            await AssertMemberIsChapterAdmin(currentMemberId, chapterId);

            IReadOnlyCollection <Venue> venues = await _venueRepository.GetVenues(chapterId);

            IReadOnlyCollection <Event> events = await _eventRepository.GetEvents(chapterId, 1, int.MaxValue);

            IReadOnlyCollection <EventResponse> memberResponses = await _eventRepository.GetChapterResponses(chapterId);

            IDictionary <Guid, IReadOnlyCollection <Event> > venueEvents = events
                                                                           .GroupBy(x => x.VenueId)
                                                                           .ToDictionary(x => x.Key, x => (IReadOnlyCollection <Event>)x.ToArray());

            return(venues
                   .Select(x => new VenueStats
            {
                EventCount = venueEvents.ContainsKey(x.Id) ? venueEvents[x.Id].Count : 0,
                LastEventDate = venueEvents.ContainsKey(x.Id) ? venueEvents[x.Id].Max(e => e.Date) : new DateTime?(),
                VenueId = x.Id
            })
                   .ToArray());
        }
コード例 #8
0
        public async Task <Page <VenueViewModel> > GetVenues(int pageIndex)
        {
            var pageSize = _config.GetValue <int>("pageSize");
            var venues   = await _repository.GetVenues(pageIndex, pageSize);

            var result = new Page <VenueViewModel>
            {
                Records = venues.Records.Select(v => new VenueViewModel()
                {
                    CityId      = v.CityId,
                    Description = v.Description,
                    Id          = v.Id,
                    Name        = v.Name,
                }).ToList(),

                CurrentPage = venues.CurrentPage,
                PageSize    = pageSize,
                TotalPages  = venues.TotalPages,
            };

            return(result);
        }