コード例 #1
0
ファイル: VenueService.cs プロジェクト: kurthamilton/ODK
        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));
        }
コード例 #2
0
        public async Task <Venue> CreateVenue(Guid currentMemberId, CreateVenue venue)
        {
            await AssertMemberIsChapterAdmin(currentMemberId, venue.ChapterId);

            Venue create = new Venue(Guid.Empty, venue.ChapterId, venue.Name, venue.Address, venue.MapQuery, 0);

            await ValidateVenue(create);

            Guid id = await _venueRepository.CreateVenue(create);

            _cacheService.RemoveVersionedCollection <Venue>(venue.ChapterId);

            return(await _venueRepository.GetVenue(id));
        }
コード例 #3
0
        public ActionResult <ConventionEntity> CreateConvention(Convention con)
        {
            if (con.Capacity < 1)
            {
                return(BadRequest("Capacity must be a positive integer"));
            }
            var venue = venueRepository.GetVenue(con.VenueId).Result;

            if (venue == null)
            {
                // TODO: Practical error handling here
                return(conventionRepository.CreateConvention(con).Result);
            }
            return(NotFound("Could not find the specified venue"));
        }
コード例 #4
0
        public Venue Get(int id)
        {
            var res = _venueRepository.GetVenue(id).Result;

            return(res);
        }