private void Consolidar(PontuacaoParcial pontuacaoParcialUpdate) { pontuacaoParcialUpdate.Consolidado = true; if (pontuacaoParcialUpdate.Scout != null) { pontuacaoParcialUpdate.Scout.Consolidado = true; } }
public CartolaCargaResponse InsertPontuacaoParcial(List <PontuacaoParcial> listaPontuacaoParcial, bool consolidar = false) { var apiResponse = new CartolaCargaResponse(); using var transaction = _cartolaDBContext.Database.BeginTransaction(); try { var rodadaAtual = listaPontuacaoParcial.First(x => x.RodadaId > 0).RodadaId; var db = _cartolaDBContext.PontuacaoParcial.Include(b => b.Scout).Where(x => x.RodadaId == rodadaAtual).ToList(); foreach (var parcial in listaPontuacaoParcial) { if (db.Any(x => x.JogadorId == parcial.JogadorId)) { PontuacaoParcial pontuacaoParcialUpdate = db.First(x => x.JogadorId == parcial.JogadorId); if (!pontuacaoParcialUpdate.Consolidado && !pontuacaoParcialUpdate.Comparar(parcial)) { pontuacaoParcialUpdate = pontuacaoParcialUpdate.UpdatePontuacaoParcial(parcial); if (consolidar) { Consolidar(pontuacaoParcialUpdate); } _cartolaDBContext.Update(pontuacaoParcialUpdate); apiResponse.QuantidadeUpdates++; } else if (!pontuacaoParcialUpdate.Consolidado && consolidar) { Consolidar(pontuacaoParcialUpdate); _cartolaDBContext.Update(pontuacaoParcialUpdate); apiResponse.QuantidadeUpdates++; } } else { if (consolidar) { Consolidar(parcial); } _cartolaDBContext.Add(parcial); apiResponse.QuantidadeInserts++; } } _cartolaDBContext.SaveChanges(); transaction.Commit(); CartolaCargaResponse updadeResponse = UpdateJogadoresHistorico(listaPontuacaoParcial, rodadaAtual, consolidar); if (string.IsNullOrWhiteSpace(updadeResponse.Errors)) { apiResponse.Mensagem = $"Tabela JogadoresHistorico: updates => {updadeResponse.QuantidadeUpdates}"; } else { apiResponse.Errors += updadeResponse.Errors; } return(apiResponse); } catch (Exception erro) { apiResponse.Errors = erro.Message; return(apiResponse); } }