Exemplo n.º 1
0
        public async Task <VersionedServiceResult <Venue> > GetVenue(long?currentVersion, Guid?currentMemberId, Guid id)
        {
            Venue venue;

            if (currentMemberId != null)
            {
                venue = await _venueRepository.GetVenue(id);
            }
            else
            {
                venue = await _venueRepository.GetPublicVenue(id);
            }

            if (venue == null)
            {
                throw new OdkNotFoundException();
            }

            if (currentMemberId != null)
            {
                await _authorizationService.AssertMemberIsChapterMember(currentMemberId.Value, venue.ChapterId);
            }

            return(await _cacheService.GetOrSetVersionedItem(
                       () => _venueRepository.GetVenue(id),
                       id,
                       currentVersion));
        }