Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        public Task <ResourceCreationResult <PourBeer, int> > CreateAsync(PourBeer resource, IRequestContext context, CancellationToken cancellation)
        {
            var tapId    = context.UriParameters.GetByName <int>("TapId").EnsureValue(() => context.CreateHttpResponseException <Tap>("The TapId must be supplied in the URI", HttpStatusCode.BadRequest));
            var officeId = context.UriParameters.GetByName <int>("OfficeId").EnsureValue(() => context.CreateHttpResponseException <Office>("The Office must be supplied in the URI", HttpStatusCode.BadRequest));

            resource.Id          = tapId;
            resource.Glass.TapId = tapId;
            resource.OfficeId    = officeId;

            Tap tap = _tapService.GetBeer(tapId, resource.Glass);

            resource.Tap = tap;

            return(Task.FromResult(new ResourceCreationResult <PourBeer, int>(resource)));
        }