コード例 #1
0
        public Task <ResourceCreationResult <Model.Beer, int> > CreateAsync(Model.Beer resource, IRequestContext context, CancellationToken cancellation)
        {
            var officeId      = context.UriParameters.GetByName <int>("OfficeID").EnsureValue();
            var linkParameter = new BeerLinkParameter(officeId);

            resource.OfficeID = officeId;
            context.LinkParameters.Set(linkParameter);

            var newBeer = _beerService.Add(_toTransportMapper.Map(resource));

            return(Task.FromResult(new ResourceCreationResult <Model.Beer, int>(_toResourceMapper.Map(newBeer))));
        }
コード例 #2
0
        public Task <Model.Beer> UpdateAsync(Model.Beer resource, IRequestContext context, CancellationToken cancellation)
        {
            var officeId      = context.UriParameters.GetByName <int>("OfficeID").EnsureValue();
            var linkParameter = new BeerLinkParameter(officeId);

            resource.OfficeID = officeId;
            context.LinkParameters.Set(linkParameter);

            var originalBeer = _toResourceMapper.Map(_beerService.GetBeerById(resource.Id, officeId).Result);
            var resultBeer   = context.MergeResource(resource, originalBeer);

            _beerService.Update(_toTransportMapper.Map(resultBeer));
            return(Task.FromResult(resource));
        }