Beispiel #1
0
        private void Consolidar(PontuacaoParcial pontuacaoParcialUpdate)
        {
            pontuacaoParcialUpdate.Consolidado = true;

            if (pontuacaoParcialUpdate.Scout != null)
            {
                pontuacaoParcialUpdate.Scout.Consolidado = true;
            }
        }
Beispiel #2
0
        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);
            }
        }