Esempio n. 1
0
        public CartolaCargaResponse ConsolidarRodada(int?rodada = 22)
        {
            var response      = new CartolaCargaResponse();
            var isRodadaAtual = rodada == null;

            if (isRodadaAtual)
            {
                var responseJogadores = CargaJogadores();

                response.Mensagem += $"Tabela Jogadores: inserts => {responseJogadores.QuantidadeInserts}, updates => {responseJogadores.QuantidadeUpdates}\n{(string.IsNullOrWhiteSpace(responseJogadores.Mensagem) ? "" : responseJogadores.Mensagem + "\n")}";
            }

            var rodadaConsolidar = rodada ?? _cartolaService.GetUltimaRodadaSemConsolidar();

            var responsePartidas = CargaPartidas(rodadaConsolidar);

            response.Mensagem += $"Tabela Partidas: inserts => {responsePartidas.QuantidadeInserts}, updates => {responsePartidas.QuantidadeUpdates}\n{(string.IsNullOrWhiteSpace(responsePartidas.Mensagem) ? "" : responsePartidas.Mensagem + "\n")}";

            var responseParciais = CargaParciais(rodadaConsolidar, true);

            response.Mensagem += $"Tabela PontuacaoParcial: inserts => {responseParciais.QuantidadeInserts}, updates => {responseParciais.QuantidadeUpdates}\n{(string.IsNullOrWhiteSpace(responseParciais.Mensagem) ? "" : responseParciais.Mensagem + "\n")}";


            var responseGerais = _cargaCartolaRepository.ConsolidarRegistrosRestantes(rodadaConsolidar);

            response.Mensagem += $"Tabelas gerais: inserts => {responseGerais.QuantidadeInserts}, updates => {responseGerais.QuantidadeUpdates}\n{(string.IsNullOrWhiteSpace(responseGerais.Mensagem) ? "" : responseGerais.Mensagem + "\n")}";

            return(response);
        }
Esempio n. 2
0
        public CartolaCargaResponse InsertPartida(List <Partida> listaPartidas)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Partida.Include(b => b.Transmissao).ToList();

                foreach (var partida in listaPartidas)
                {
                    if (db.Any(x => x.PartidaId == partida.PartidaId))
                    {
                        Partida partidaUpdate = db.First(x => x.PartidaId == partida.PartidaId).UpdatePartida(partida);
                        _cartolaDBContext.Update(partidaUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(partida);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 3
0
        public CartolaCargaResponse InsertRodada(List <Rodada> listaRodada)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Rodada.ToList();

                foreach (var rodada in listaRodada)
                {
                    if (db.Any(x => x.RodadaId == rodada.RodadaId))
                    {
                        Rodada rodadaUpdate = db.First(x => x.RodadaId == rodada.RodadaId).UpdateRodada(rodada);
                        _cartolaDBContext.Update(rodadaUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(rodada);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 4
0
        public CartolaCargaResponse InsertStatus(List <Status> listaStatus)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Status.ToList();

                foreach (var status in listaStatus)
                {
                    if (db.Any(x => x.StatusId == status.StatusId))
                    {
                        Status statusUpdate = db.First(x => x.StatusId == status.StatusId).UpdateStatus(status);
                        _cartolaDBContext.Update(statusUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(status);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 5
0
        public CartolaCargaResponse InsertEsquemas(List <Esquema> listaEsquemas)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Esquema.Include(b => b.Posicoes).ToList();

                foreach (var esquema in listaEsquemas)
                {
                    if (db.Any(x => x.EsquemaId == esquema.EsquemaId))
                    {
                        Esquema esquemaUpdate = db.First(x => x.EsquemaId == esquema.EsquemaId).UpdateEsquema(esquema);
                        _cartolaDBContext.Update(esquemaUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(esquema);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 6
0
        public CartolaCargaResponse InsertPosicoes(List <Posicao> listaPosicoes)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Posicao.ToList();

                foreach (var posicao in listaPosicoes)
                {
                    if (db.Any(x => x.PosicaoId == posicao.PosicaoId))
                    {
                        Posicao posicaoUpdate = db.First(x => x.PosicaoId == posicao.PosicaoId).UpdatePosicao(posicao);
                        _cartolaDBContext.Update(posicaoUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(posicao);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 7
0
        public CartolaCargaResponse InsertClubes(List <Clube> clubes)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var transaction = _cartolaDBContext.Database.BeginTransaction();
                var db = _cartolaDBContext.Clube.Include(b => b.Escudos).ToList();

                foreach (var clube in clubes)
                {
                    if (db.Any(x => x.ClubeId == clube.ClubeId))
                    {
                        Clube clubeUpdate = db.First(x => x.ClubeId == clube.ClubeId).UpdateClube(clube);
                        _cartolaDBContext.Update(clubeUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(clube);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 8
0
        public CartolaCargaResponse ConsolidarRegistrosRestantes(int rodadaConsolidar)
        {
            var apiResponse = new CartolaCargaResponse();
            var Origens     = new List <int>()
            {
                (int)OrigemEnum.JogadorHistorico, (int)OrigemEnum.Pontuacao
            };

            using var transaction = _cartolaDBContext.Database.BeginTransaction();
            try
            {
                var registroJogadorHistorico = _cartolaDBContext.JogadorHistorico
                                               .Where(x => /*TODO x.RodadaId == rodadaConsolidar && */ x.Consolidado == false)
                                               .ToList();

                var registroScout = _cartolaDBContext.Scout
                                    .Where(x => /*x.RodadaId == rodadaConsolidar && */ x.Consolidado == false && Origens.Contains((int)x.Origem))
                                    .ToList();

                var registroPontuacaoParcial = _cartolaDBContext.PontuacaoParcial
                                               .Where(x => /*x.RodadaId == rodadaConsolidar && */ x.Consolidado == false)
                                               .ToList();

                foreach (var jogador in registroJogadorHistorico)
                {
                    jogador.Consolidado = true;
                    _cartolaDBContext.Update(jogador);
                    apiResponse.QuantidadeUpdates++;
                }

                foreach (var scout in registroScout)
                {
                    scout.Consolidado = true;
                    _cartolaDBContext.Update(scout);
                    apiResponse.QuantidadeUpdates++;
                }

                foreach (var parcial in registroPontuacaoParcial)
                {
                    parcial.Consolidado = true;
                    _cartolaDBContext.Update(parcial);
                    apiResponse.QuantidadeUpdates++;
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 9
0
        public CartolaCargaResponse InsertJogadores(List <Jogador> listaJogadores)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                using var scope = new TransactionScope(
                          TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted });

                var db = _cartolaDBContext.Jogador.Include(b => b.ScoutAtual).ToList();

                foreach (var jogador in listaJogadores)
                {
                    if (db.Any(x => x.JogadorId == jogador.JogadorId))
                    {
                        Jogador jogadorUpdate = db.First(x => x.JogadorId == jogador.JogadorId).UpdateJogador(jogador);
                        _cartolaDBContext.Update(jogadorUpdate);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else
                    {
                        _cartolaDBContext.Add(jogador);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                scope.Complete();
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }

            var responseJogadoresHistoricos = InsertJogadoresHistorico(listaJogadores);

            if (string.IsNullOrWhiteSpace(responseJogadoresHistoricos.Errors))
            {
                apiResponse.Mensagem = $"Tabela JogadoresHistorico: inserts => {responseJogadoresHistoricos.QuantidadeInserts}, updates => {responseJogadoresHistoricos.QuantidadeUpdates}";
            }
            else
            {
                apiResponse.Errors += responseJogadoresHistoricos.Errors;
            }

            return(apiResponse);
        }
Esempio n. 10
0
        public CartolaCargaResponse InsertJogadoresHistorico(List <Jogador> listaJogadores, int?rodada = null)
        {
            var apiResponse = new CartolaCargaResponse();

            try
            {
                if (rodada == null)
                {
                    rodada = listaJogadores.First(x => x.RodadaId >= 0).RodadaId;
                }

                using var scope = new TransactionScope();
                var db = _cartolaDBContext.JogadorHistorico.Include(b => b.Scout).Where(x => x.RodadaId == rodada).ToList();

                foreach (var jogador in listaJogadores)
                {
                    JogadorHistorico jogadorHistorio = (JogadorHistorico)jogador;

                    if (db.Any(x => x.JogadorId == jogadorHistorio.JogadorId))
                    {
                        JogadorHistorico jogadorHistoricoUpdate = db.First(x => x.JogadorId == jogadorHistorio.JogadorId);
                        if (!jogadorHistoricoUpdate.Consolidado)
                        {
                            jogadorHistoricoUpdate = jogadorHistoricoUpdate.UpdateJogadorHistorico(jogadorHistorio);
                            _cartolaDBContext.Update(jogadorHistoricoUpdate);
                            apiResponse.QuantidadeUpdates++;
                        }
                    }
                    else
                    {
                        _cartolaDBContext.Add(jogadorHistorio);
                        apiResponse.QuantidadeInserts++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                scope.Complete();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 11
0
        private CartolaCargaResponse UpdateJogadoresHistorico(List <PontuacaoParcial> listaPontuacaoParcial, int rodadaAtual, bool consolidar = false)
        {
            var apiResponse = new CartolaCargaResponse();

            using var transaction = _cartolaDBContext.Database.BeginTransaction();
            try
            {
                var db = _cartolaDBContext.JogadorHistorico.Where(x => x.RodadaId == rodadaAtual).ToList();

                foreach (var parcial in listaPontuacaoParcial)
                {
                    var jogadorHistorico = db.FirstOrDefault(x => x.JogadorId == parcial.JogadorId && x.RodadaId == parcial.RodadaId);

                    if (jogadorHistorico != null && !jogadorHistorico.Consolidado && !jogadorHistorico.Comparar(parcial))
                    {
                        jogadorHistorico.UpdateJogadorHistorico(parcial);

                        if (consolidar)
                        {
                            Consolidar(jogadorHistorico);
                        }

                        _cartolaDBContext.Update(jogadorHistorico);
                        apiResponse.QuantidadeUpdates++;
                    }
                    else if (jogadorHistorico != null && !jogadorHistorico.Consolidado && consolidar)
                    {
                        Consolidar(jogadorHistorico);
                        _cartolaDBContext.Update(jogadorHistorico);
                        apiResponse.QuantidadeUpdates++;
                    }
                }

                _cartolaDBContext.SaveChanges();
                transaction.Commit();

                return(apiResponse);
            }
            catch (Exception erro)
            {
                apiResponse.Errors = erro.Message;
                return(apiResponse);
            }
        }
Esempio n. 12
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);
            }
        }