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)))); }
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)); }