public async Task <IActionResult> Edit(Guid id, [Bind("Id,Placar,DataJogo,MinimoTemporada,MaximoTemporada,QuebraRecordeMaximo,QuebraRecordeMinimo,TemporadaId")] RegistroJogo registroJogo) { if (id != registroJogo.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(registroJogo); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RegistroJogoExists(registroJogo.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(registroJogo)); }
private RegistroJogo CalculaRegistrosTemporada(RegistroJogo registroJogo) { int?minimoTemporada, maximoTemporada; BuscaMinimoEMaximoTemporada(registroJogo, out minimoTemporada, out maximoTemporada); if (minimoTemporada == null) { registroJogo.MinimoTemporada = registroJogo.Placar; registroJogo.MaximoTemporada = registroJogo.Placar; registroJogo.QuebraRecordeMaximo = 1; registroJogo.QuebraRecordeMinimo = 1; registroJogo.NumeroJogo = 1; return(registroJogo); } registroJogo.NumeroJogo = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.NumeroJogo) + 1; if (registroJogo.Placar < minimoTemporada) { var quebraRecordeMinimo = BuscaQuebraRecordeMinimo(registroJogo.TemporadaId); registroJogo.MaximoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.MaximoTemporada); registroJogo.QuebraRecordeMaximo = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.QuebraRecordeMaximo); registroJogo.QuebraRecordeMinimo = quebraRecordeMinimo + 1; registroJogo.MinimoTemporada = registroJogo.Placar; return(registroJogo); } else if (registroJogo.Placar > maximoTemporada) { var quebraRecordeMaximo = BuscaQuebraRecordeMaximo(registroJogo.TemporadaId); registroJogo.MinimoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Min(x => x.MinimoTemporada); registroJogo.QuebraRecordeMinimo = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.QuebraRecordeMinimo); registroJogo.QuebraRecordeMaximo = quebraRecordeMaximo + 1; registroJogo.MaximoTemporada = registroJogo.Placar; return(registroJogo); } else { registroJogo.MaximoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.MaximoTemporada); registroJogo.QuebraRecordeMaximo = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.QuebraRecordeMaximo); registroJogo.MinimoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Min(x => x.MinimoTemporada); registroJogo.QuebraRecordeMinimo = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.QuebraRecordeMinimo); return(registroJogo); } }
public async Task <IActionResult> Create([Bind("Id,Placar,MinimoTemporada,MaximoTemporada,QuebraRecordeMaximo,QuebraRecordeMinimo,TemporadaId")] RegistroJogo registroJogo) { if (ModelState.IsValid) { registroJogo = CalculaRegistrosTemporada(registroJogo); registroJogo.Id = Guid.NewGuid(); _context.Add(registroJogo); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(registroJogo)); }
private void BuscaMinimoEMaximoTemporada(RegistroJogo registroJogo, out int?minimoTemporada, out int?maximoTemporada) { minimoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Min(x => x.MinimoTemporada); maximoTemporada = _context.RegistroJogo.Where(x => x.TemporadaId == registroJogo.TemporadaId).Max(x => x.MaximoTemporada); }