Пример #1
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));
        }
        public async Task <IActionResult> Post([FromBody] BeerRemoval beerRemovalRequest)
        {
            if (beerRemovalRequest == null)
            {
                return(BadRequest("Not a valid Beer removal request"));
            }
            var user = $"{User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.GivenName).FirstOrDefault().Value} {User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.Surname).FirstOrDefault().Value}";

            if (!(await beerService.GetUserCredits(user) > 0))
            {
                return(BadRequest("User does not have enough credits to remove beer"));
            }


            var beer = await beerService.GetBeerById(beerRemovalRequest.BeerId);

            beer.RemovedDate = DateTime.Now;
            beer.RemovedBy   = user;
            var currentBeers = await beerService.GetCurrentBeers();

            beer.SwitchedFor = currentBeers.First(b => b.CreatedBy == user);

            await beerService.UpdateBeer(beer);

            return(Ok());
        }
        public async Task <IActionResult> Post([FromBody] BeerAddition beerAdditionRequest)
        {
            if (beerAdditionRequest == null)
            {
                return(BadRequest("Not a valid Beer addition request"));
            }

            Beer beer = new Beer();

            beer.Name      = beerAdditionRequest.BeerName;
            beer.CreatedBy = beerAdditionRequest.AddedBy;
            beer.Brewery   = beerAdditionRequest.Brewery;
            beer.Country   = beerAdditionRequest.Country;
            beer.AddedDate = DateTime.Now;

            if (beerAdditionRequest.switchedBeer.HasValue && beerAdditionRequest.switchedBeer.Value != -1)
            {
                var switchedBeer = await beerService.GetBeerById(beerAdditionRequest.switchedBeer.Value);

                if (switchedBeer.RemovedDate.HasValue || !string.IsNullOrEmpty(switchedBeer.RemovedBy))
                {
                    throw new Exception("invalid switched beer");
                }

                switchedBeer.RemovedDate = DateTime.Now;
                switchedBeer.RemovedBy   = beerAdditionRequest.AddedBy;
                await beerService.UpdateBeer(switchedBeer);

                beer.SwitchedFor = switchedBeer;
            }

            await beerService.AddBeer(beer);

            return(Ok());
        }
Пример #4
0
        public IActionResult GetById(int beerId)
        {
            var result = _beerService.GetBeerById(beerId);

            if (result.IsError)
            {
                return(StatusCode(422, result.Errors));
            }
            return(Ok(result.SuccessResult));
        }
Пример #5
0
        public ActionResult Edit(Guid id)
        {
            var model = new BeerViewModelDetails();

            model = _beerService.GetBeerById(id).ToBeerViewModelDetails();
            model.BeerTypeDtoList = _beerTypeService.GetAll().ToSelectListItemList();

            model.CountryDtoList = _countryService.GetAll().ToSelectListItemList();

            model.CityDtoList = _cityService.GetByCountryId(model.CountryId).ToSelectListItemList();
            return(View("Details", model));
        }
Пример #6
0
        public async Task <IActionResult> Post([FromBody] CreditTransfer creditTransfer)
        {
            var beer = await beerService.GetBeerById(creditTransfer.BeerId);

            if (beer == null)
            {
                return(BadRequest("invalid beerId"));
            }

            beer.CreatedBy = creditTransfer.CreditReceiver;

            await beerService.UpdateBeer(beer);

            return(Ok());
        }
Пример #7
0
 public ActionResult <Beer> GetByID(int ID)
 {
     try
     {
         Beer beer = BeerService.GetBeerById(ID);
         if (beer != null)
         {
             return(Ok(beer));
         }
         return(NotFound());
     }
     catch (Exception ex)
     {
         return(StatusCode(500, $"Error loading beer with ID: {ID}\nPlease try again later."));
     }
 }
Пример #8
0
        public async Task <IActionResult> Post([FromBody] CreditTransfer creditTransfer)
        {
            var beer = await beerService.GetBeerById(creditTransfer.BeerId);

            if (beer == null)
            {
                return(BadRequest("invalid beerId"));
            }

            var user = $"{User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.GivenName).FirstOrDefault().Value} {User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.Surname).FirstOrDefault().Value}";

            if (beer.CreatedBy != user)
            {
                return(BadRequest($"Invalid beerId, Beer not owned by user {user}"));
            }

            beer.CreatedBy = creditTransfer.CreditReceiver;

            await beerService.UpdateBeer(beer);

            return(Ok());
        }
Пример #9
0
        public async Task <ResponseModel <BeerDetail> > GetBeerById(string id)
        {
            var result = await _beerService.GetBeerById(id);

            return(result);
        }
Пример #10
0
 public async Task <Beer> Get(int id)
 {
     return(await beerService.GetBeerById(id));
 }