public async Task <IActionResult> SelectMatch(int?id, int?casalid) { if (id == null || casalid == null) { return(NotFound()); } var casalMatch = _context.Casal.Include(x => x.PedidoGametas).FirstOrDefault(x => x.CasalID == casalid); var dadorMatch = _context.Dador.Include(x => x.Amostras).FirstOrDefault(x => x.DadorId == id); if (dadorMatch == null || casalMatch == null) { return(NoContent()); } var pedidoAssociado = _context.PedidoGametas .Find(casalMatch.PedidoGametas.PedidoGametasId); pedidoAssociado.EstadoProcessoPedido = EstadoProcesso.EncontrouMatch; var amostraSelecionada = _context.Amostra.Where(x => x.PedidoGametas == null) .Where(x => x.DadorId == dadorMatch.DadorId).OrderByDescending(x => x.AmostraId).FirstOrDefault(); //var amostraSelecionada2 = dadorMatch.Amostras.Where(x=>x.PedidoGametas==null) // .OrderByDescending(x => x.AmostraId).FirstOrDefault(); if (amostraSelecionada == null) { //TODO Mensagem erro no processo return(NoContent()); } pedidoAssociado.AmostraId = amostraSelecionada.AmostraId; //pedidoAssociado.Casal //_context.PedidoGametas.Update(pedidoAssociado); _context.PedidoGametas.Update(pedidoAssociado); var match = MatchHelper.GetMatchStats(casalMatch, dadorMatch); await _context.MatchStats.AddAsync(match); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }