public async Task <ActionResult> UpdateAsync(int id, [FromBody] BeerRequest updateBeerRequest) { if (!ModelState.IsValid) { _logger.Warning("Request to update beer has been denied. Beer model is invalid"); return(BadRequest(ModelState)); } try { _logger.Information($"Updating beer with id: {id}."); await _beerService.UpdateAsync(id, updateBeerRequest); _logger.Information($"Successfully updated beer with id: {id}."); return(NoContent()); } catch (KeyNotFoundException ex) { _logger.Warning(ex, $"Beer with id: {id} could not be updated, as it was not found."); return(NotFound()); } catch (Exception ex) { _logger.Error(ex, $"Request to update beer with id: {id} failed."); return(StatusCode(500)); } }
public async Task <ActionResult <Beer> > CreateAsync([FromBody] BeerRequest createBeerRequest) { if (!ModelState.IsValid) { _logger.Warning("Request to create beer has been denied. Beer model is invalid"); return(BadRequest(ModelState)); } try { _logger.Information($"Creating beer with name: {createBeerRequest.Name}."); var beer = new Beer { Name = createBeerRequest.Name, Style = createBeerRequest.Style, Brewery = createBeerRequest.Brewery, Abv = createBeerRequest.Abv }; var createdBeer = await _beerService.CreateAsync(beer); _logger.Information($"Successfully created beer with name: {createdBeer.Name}."); // uses return from db to send in the response; refers to named endpoint return(CreatedAtRoute("GetBeer", new { id = createdBeer.BeerId }, createdBeer)); } catch (Exception ex) { _logger.Error(ex, $"Request to create beer with name: {createBeerRequest.Name} failed."); return(StatusCode(500)); } }
public async Task UpdateAsync(int id, BeerRequest beerUpdate) { var beer = await _beerRepository.GetByIdAsync(id); if (beer == null) { throw new KeyNotFoundException(); } beer.Name = string.IsNullOrEmpty(beerUpdate.Name) ? beer.Name : beerUpdate.Name; beer.Style = string.IsNullOrEmpty(beerUpdate.Style) ? beer.Style : beerUpdate.Style; beer.Brewery = string.IsNullOrEmpty(beerUpdate.Brewery) ? beer.Brewery : beerUpdate.Brewery; beer.Abv = (beerUpdate.Abv > 0) ? beerUpdate.Abv : beer.Abv; await _beerRepository.UpdateAsync(beer); }
public async Task <BeersResponse> GetBeersAsync(BeerRequest request) { var uri = RouteBuilder("beers", request); HttpResponseMessage response = await _client.GetAsync(uri); if (response.IsSuccessStatusCode) { var jsonResult = await response.Content.ReadAsStringAsync(); var results = JsonConvert.DeserializeObject <BeersResponse>(jsonResult); return(results); } return(new BeersResponse() { Status = response.StatusCode.ToString() }); }
public void Setup() { _beerService = Substitute.For <IBeerService>(); _logger = Substitute.For <ILogger>(); _controller = new BeersController(_beerService, _logger); _beerRequest = new BeerRequest { Name = "Beer Name", Brewery = "Test Brewery", Style = "Test Beer", Abv = 4.5m }; _beer = new Beer { BeerId = 1, Name = _beerRequest.Name, Brewery = _beerRequest.Brewery, Style = _beerRequest.Style, Abv = _beerRequest.Abv }; }
public IActionResult Edit(BeerRequest request) { Response <object> response = new Response <object>(); try { using (BlazorCrudContext db = new BlazorCrudContext()) { Beer beer = db.Beers.Find(request.id); beer.Name = request.name; beer.Maker = request.maker; db.Entry(beer).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); response.success = 1; } } catch (Exception ex) { response.message = ex.Message; } return(Ok(response)); }
public IActionResult Add(BeerRequest request) { Response <object> response = new Response <object>(); try { using (BlazorCrudContext db = new BlazorCrudContext()) { Beer beer = new Beer(); beer.Name = request.name; beer.Maker = request.maker; db.Beers.Add(beer); db.SaveChanges(); response.success = 1; } } catch (Exception ex) { response.message = ex.Message; } return(Ok(response)); }
private string RouteBuilder(string path, BeerRequest request = null, BeerRequestAdditionalData additionalData = null) { return($"{_baseAddress}{path}?key={_key}{request?.ToString()}{additionalData?.ToString()}"); }
public async Task <BeersResponse> GetAsync(BeerRequest request) { return(await _breweryDb.Beer.GetBeersAsync(request)); }
public async Task <BeersResponse> GetAsync(BeerRequest request) { return(await _beerRepository.GetAsync(request)); }
public async Task <BeersResponse> Get([FromUri] BeerRequest request) { return(await _beerOrchestrator.GetAsync(request)); }