public Task <ResourceCreationResult <PourBeer, int> > CreateAsync(PourBeer resource, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); var tapId = context.UriParameters.GetByName <int>("TapId").EnsureValue(() => context.CreateHttpResponseException <Tap>("The TapId must be supplied in the URI", HttpStatusCode.BadRequest)); Keg k = _repository.GetKegByTapId(tapId); if (k.Remaining < resource.Glass.AmountToPour) { throw new Exception("Not enough beer in this Tap!!!!!"); } //Add new Glass resource.Id = tapId; resource.Glass.TapId = tapId; Glass g = _repository.AddGlass(resource.Glass); //Update the Keg _repository.UpdateKegByGlass(g); //Get the Tap for reference Tap t = _repository.GetTapById(tapId); resource.Tap = t; return(Task.FromResult(new ResourceCreationResult <PourBeer, int>(resource))); }
public Task <ResourceCreationResult <Office, int> > CreateAsync(Office resource, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); Office office = _repository.AddOffice(resource); return(Task.FromResult(new ResourceCreationResult <Office, int>(resource))); }
public Task <IEnumerable <Tap> > GetManyAsync(IRequestContext context, CancellationToken cancellation) { var officeId = context.UriParameters.GetByName <int>("OfficeId").EnsureValue(() => context.CreateHttpResponseException <Tap>("The officeId must be supplied in the URI", HttpStatusCode.BadRequest)); _repository = new BeeerTapRepository(); return(Task.FromResult(_repository.GetTaps(officeId))); }
public Task DeleteAsync(ResourceOrIdentifier <Tap, int> input, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); var tapId = context.UriParameters.GetByName <int>("Id").EnsureValue(() => context.CreateHttpResponseException <Tap>("The officeId must be supplied in the URI", HttpStatusCode.BadRequest)); _repository.UpdateKeg(tapId); _repository.RemoveTap(tapId); return(Task.FromResult <Tap>(null)); }
public Task <ResourceCreationResult <Tap, int> > CreateAsync(Tap resource, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); Keg keg = resource.Keg; // resource.Keg = null; Tap tap = resource; tap = _repository.AddTap(resource); if (keg != null) { keg.TapId = tap.Id; _repository.ReplaceKeg(resource.Keg); } return(Task.FromResult(new ResourceCreationResult <Tap, int>(resource))); }
public Task <ResourceCreationResult <Keg, int> > CreateAsync(Keg resource, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); Keg k; var tapId = context.UriParameters.GetByName <int>("TapId").EnsureValue(() => context.CreateHttpResponseException <Tap>("The TapId must be supplied in the URI", HttpStatusCode.BadRequest)); resource.TapId = tapId; //check if Tap exist. if (_repository.GetTapById(tapId) != null) { k = _repository.ReplaceKeg(resource); } else { throw new Exception("Tap doesn't exist. Cannot replace keg."); } return(Task.FromResult(new ResourceCreationResult <Keg, int>(k))); }
public Task DeleteAsync(ResourceOrIdentifier <Office, int> input, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); _repository.RemoveOffice(input.Resource); return(Task.FromResult <Office>(null)); }
public Task <Office> UpdateAsync(Office resource, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); return(Task.FromResult(_repository.UpdateOffice(resource))); }
public Task <IEnumerable <Office> > GetManyAsync(IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); return(Task.FromResult(_repository.GetOffices())); }
public Task <Office> GetAsync(int id, IRequestContext context, CancellationToken cancellation) { _repository = new BeeerTapRepository(); return(Task.FromResult(_repository.GetOfficeById(id))); }