public IEnumerable <Model.Beer> GetMany(IRequestContext context) { var officeId = context.UriParameters.GetByName <int>("OfficeID").EnsureValue(); var linkParameter = new BeerLinkParameter(officeId); context.LinkParameters.Set(linkParameter); return(_beerService.GetAll(officeId) .Select(_toResourceMapper.Map)); }
public async Task <Model.Beer> GetAsync(int id, IRequestContext context, CancellationToken cancellation) { var officeId = context.UriParameters.GetByName <int>("OfficeID").EnsureValue(); var linkParameter = new BeerLinkParameter(officeId); context.LinkParameters.Set(linkParameter); return (_toResourceMapper.Map( await _beerService.GetBeerById(id, officeId))); }
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)); }