public async Task <ActionResult <RinkViewModel> > Post(Rink item) { EnsureOnlyOneWinningRink(item); _context.Rinks.Add(item); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { id = item.Id }, _mapper.Map <RinkViewModel>(item))); }
public async Task <IActionResult> Put(long id, Rink item) { if (id != item.Id) { return(BadRequest()); } EnsureOnlyOneWinningRink(item); _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
private void EnsureOnlyOneWinningRink(Rink item) { var existingWinningRinks = _context.Rinks .Where(o => o.WasWinningRink == true && o.SeasonId == item.SeasonId && o.CompetitionId == item.CompetitionId && o.Id != item.Id) .Count(); if (existingWinningRinks > 0) { throw new Exception("Already a winning rink for this season and competition."); } }