public IHttpActionResult PutDefinirHorario(int id, DateTime dataJogo, string horaJogo = "", string localJogo = "") { try { var jogo = db.Jogo.Find(id); if (jogo == null) { return(InternalServerError(new Exception("Jogo não encontrado."))); } jogo.dataJogo = dataJogo; jogo.horaJogo = horaJogo; jogo.localJogo = localJogo; if (jogo.situacao_Id != 4 && jogo.situacao_Id != 5) { jogo.situacao_Id = 2; } db.Entry(jogo).State = EntityState.Modified; db.SaveChanges(); } catch (Exception e) { return(InternalServerError(e)); } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PutLancarResultado(int id, int games1setDesafiante = 0, int games2setDesafiante = 0, int games3setDesafiante = 0, int games1setDesafiado = 0, int games2setDesafiado = 0, int games3setDesafiado = 0) { var jogo = db.Jogo.Find(id); jogo.qtddGames1setDesafiante = games1setDesafiante; jogo.qtddGames2setDesafiante = games2setDesafiante; jogo.qtddGames3setDesafiante = games3setDesafiante; jogo.qtddGames1setDesafiado = games1setDesafiado; jogo.qtddGames2setDesafiado = games2setDesafiado; jogo.qtddGames3setDesafiado = games3setDesafiado; jogo.usuarioInformResultado = ""; //User.Identity.Name; TODO: PEGAR O NOME DO USUÁRIO jogo.dataCadastroResultado = DateTime.Now; jogo.situacao_Id = 4; db.Entry(jogo).State = EntityState.Modified; try { db.SaveChanges(); tc.MontarProximoJogoTorneio(jogo); } catch (Exception) { return(InternalServerError(new Exception("Erro ao lançar resultado."))); } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PutBarragemView(int id, BarragemView barragemView) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != barragemView.Id) { return(BadRequest()); } db.Entry(barragemView).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!BarragemViewExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public void gravarPontuacaoNaRodada(int idRodada, UserProfile jogador, double pontosConquistados, bool isReprocessamento = false) { if (jogador.situacao.Equals("curinga") || jogador.situacao.Equals("pendente")) { return; } Rancking ran = null; double pontuacaoTotal = db.Rancking.Where(r => r.rodada.isAberta == false && r.userProfile_id == jogador.UserId && r.rodada_id < idRodada).OrderByDescending(r => r.Id).Take(9).Sum(r => r.pontuacao); if (isReprocessamento) { ran = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Single(); ran.pontuacao = Math.Round(pontosConquistados, 2); //ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); db.SaveChanges(); } else { ran = new Rancking(); ran.rodada_id = idRodada; ran.pontuacao = Math.Round(pontosConquistados, 2); ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); ran.posicao = 0; ran.userProfile_id = jogador.UserId; ran.classeId = jogador.classeId; db.Rancking.Add(ran); db.SaveChanges(); } }
public ActionResult Resetar() { string mensagem = ""; try{ using (TransactionScope scope = new TransactionScope()){ db.Database.ExecuteSqlCommand("Delete from Jogo"); db.Database.ExecuteSqlCommand("Delete from Rancking"); db.Database.ExecuteSqlCommand("Delete from Rodada where isRodadaCarga=0"); db.Database.ExecuteSqlCommand("update UserProfile set situacao='ativo' where situacao='suspenso'"); Rancking ranking = null; List <Rodada> rodadas = db.Rodada.ToList(); List <UserProfile> jogadores = db.UserProfiles.ToList(); foreach (var rodada in rodadas) { foreach (var jogador in jogadores) { ranking = new Rancking(); ranking.rodada_id = rodada.Id; ranking.pontuacao = 5.0; ranking.posicao = 0; ranking.totalAcumulado = 50; ranking.userProfile_id = jogador.UserId; db.Rancking.Add(ranking); } } db.SaveChanges(); scope.Complete(); mensagem = "ok"; } }catch (Exception ex) { mensagem = ex.Message; } return(RedirectToAction("Edit", "Configuracao", new{ id = 1, msg = mensagem })); }
public ActionResult Create(Liga liga) { if (ModelState.IsValid) { db.Liga.Add(liga); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(liga)); }
public ActionResult Create(Barragens barragens) { try { var codigo = 91; var sql = ""; if (barragens.valorPorUsuario == null) { barragens.valorPorUsuario = 5; } if (barragens.soTorneio == null) { barragens.soTorneio = false; } using (TransactionScope scope = new TransactionScope()) { if (ModelState.IsValid) { if (!barragens.email.Equals("")) { if (!Funcoes.IsValidEmail(barragens.email)) { ViewBag.MsgErro = string.Format("E-mail inválido. '{0}'", barragens.email); return(View(barragens)); } } var meuRanking = db.Barragens.Find(8); barragens.regulamento = meuRanking.regulamento; db.Barragens.Add(barragens); db.SaveChanges(); for (int i = 1; i <= 10; i++) { sql = "INSERT INTO Rodada(codigo, dataInicio, dataFim, isAberta, sequencial, isRodadaCarga, barragemId) " + "VALUES (" + codigo + ",'2000-01-01','2000-01-01', 0, " + i + ", 1, " + barragens.Id + ")"; db.Database.ExecuteSqlCommand(sql); codigo = codigo + 1; } for (int i = 1; i <= 5; i++) { sql = "INSERT INTO Classe (nome, nivel, barragemId) VALUES ('" + i + "ª Classe'," + i + ", " + barragens.Id + ")"; db.Database.ExecuteSqlCommand(sql); } scope.Complete(); return(RedirectToAction("Index")); } } } catch (Exception ex) { ViewBag.MsgErro = ex.Message; } return(View(barragens)); }
public ActionResult Create(Jogo jogo) { if (ModelState.IsValid) { db.Jogo.Add(jogo); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.desafiado_id = new SelectList(db.UserProfiles, "UserId", "UserName", jogo.desafiado_id); ViewBag.desafiante_id = new SelectList(db.UserProfiles, "UserId", "UserName", jogo.desafiante_id); ViewBag.rodada_id = new SelectList(db.Rodada, "Id", "codigo", jogo.rodada_id); return(View(jogo)); }
public ActionResult EnviarEmail(String nome, String fone) { var mensagem = ""; if (String.IsNullOrEmpty(nome)) { mensagem = "Favor informar seu nome."; } else if (String.IsNullOrEmpty(fone)) { mensagem = "Favor informar um telefone de contato."; } else if (fone.Length < 15) { mensagem = "Número de celular incompleto. Verifique se foi preenchido o DDD + número de celular."; } else { mensagem = "Parabéns!!! Seu cadastro foi realizado com sucesso. Entraremos em contato em breve."; try { Mail e = new Mail(); //e.SendEmail("*****@*****.**", "Solicitação de contato Ranking de tenis", "Nome do contato: " + nome + "<br>telefone de contato: " + fone, Class.Tipos.FormatoEmail.Html); e.assunto = "Solicitação de contato Ranking de tenis"; e.conteudo = "Nome do contato: " + nome + "<br>telefone de contato: " + fone; e.formato = Class.Tipos.FormatoEmail.Html; e.de = "*****@*****.**"; e.para = "*****@*****.**"; e.bcc = new List <String>() { "*****@*****.**" }; e.EnviarMail(); } catch (Exception e) { var log2 = new Log(); log2.descricao = "Email :" + e.Message; db.Log.Add(log2); db.SaveChanges(); return(RedirectToAction("Index", "Home", new { msg = "Desculpe. Casdastro temporariamente indisponível." })); } } return(RedirectToAction("Index", "Home", new { msg = mensagem })); }
public ActionResult Edit(Rodada rodada) { if (ModelState.IsValid) { rodada.dataFim = new DateTime(rodada.dataFim.Year, rodada.dataFim.Month, rodada.dataFim.Day, 23, 59, 59); db.Entry(rodada).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(rodada)); }
public ActionResult Edit(Configuracao configuracao) { if (ModelState.IsValid) { db.Entry(configuracao).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(configuracao)); }
public ActionResult AlterarClassesJogadores(IEnumerable <RankingView> rankingView) { try { UserProfile jogador = null; foreach (RankingView user in rankingView) { jogador = db.UserProfiles.Find(user.userProfile_id); var barraId = jogador.barragemId; var classe = db.Classe.Where(c => c.barragemId == barraId && c.nivel == user.classeId).Single(); jogador.classeId = classe.Id; db.Entry(jogador).State = EntityState.Modified; db.SaveChanges(); } return(Json(new { erro = "", retorno = 1 }, "text/plain", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { erro = ex.Message, retorno = 0 }, "text/plain", JsonRequestBehavior.AllowGet)); } }
public ActionResult SolicitarAtivacao() { //string userName = MD5Crypt.Descriptografar(token); var userName = User.Identity.Name; UserProfile user = null; try { user = db.UserProfiles.Where(u => u.UserName.ToLower() == userName.ToLower()).FirstOrDefault(); if (user != null) { user.situacao = "Ativamento solicitado"; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); notificarOrganizadorSolicitacaoAtivar(user.nome, user.barragemId); return(View("SolicitarAtivacao")); } else { ViewBag.MsgErro = "Este usuário não existe."; return(View()); } } catch (Exception ex) { var routeData = new RouteData(); routeData.Values["controller"] = "Erros"; routeData.Values["exception"] = ex; routeData.Values["action"] = "General"; return(RedirectToAction("General", "Erros", routeData)); } finally { if (db != null) { db.Dispose(); } } //return View(); }
private void criarJogo(int jogador1, int jogador2, int torneioId, int classeTorneio, int faseTorneio, int ordemJogo) { Jogo jogo = new Jogo(); jogo.desafiado_id = jogador1; jogo.desafiante_id = jogador2; jogo.torneioId = torneioId; jogo.situacao_Id = 1; jogo.classeTorneio = classeTorneio; jogo.faseTorneio = faseTorneio; jogo.ordemJogo = ordemJogo; if ((jogador2 == 0) && (jogador1 != 0)) { jogo.situacao_Id = 4; jogo.qtddGames1setDesafiado = 6; jogo.qtddGames2setDesafiado = 6; jogo.qtddGames1setDesafiante = 0; jogo.qtddGames2setDesafiante = 0; } db.Jogo.Add(jogo); db.SaveChanges(); }
public IHttpActionResult PutAlterarPerfil(int userId, string nome, string email, string celular, string naturalidade, DateTime dataNascimento, string altura, string lateralidade, string informacoesAdicionais) { var user = db.UserProfiles.Find(userId); user.nome = nome; user.email = email; user.telefoneCelular = celular; user.naturalidade = naturalidade; user.dataNascimento = dataNascimento; user.altura2 = altura; user.lateralidade = lateralidade; user.matriculaClube = informacoesAdicionais; db.Entry(user).State = EntityState.Modified; try{ db.SaveChanges(); }catch (Exception e) { return(InternalServerError(e)); } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult Create(Rodada rodada) { if (ModelState.IsValid) { List <Rodada> rodadas = db.Rodada.Where(r => r.isAberta == true && r.barragemId == rodada.barragemId).ToList(); if (rodadas.Count() > 0) { var mensagem = "Não foi possível criar uma nova rodada, pois ainda existe rodada(s) em aberto."; return(RedirectToAction("Index", new { msg = mensagem })); } try{ Rodada rd = db.Rodada.Where(r => r.barragemId == rodada.barragemId).OrderByDescending(r => r.Id).Take(1).Single(); if (rd.sequencial == 10) { string alfabeto = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int pos = alfabeto.IndexOf(rd.codigo); pos++; rodada.sequencial = 1; rodada.codigo = Convert.ToString(alfabeto[pos]); } else { rodada.sequencial = rd.sequencial + 1; rodada.codigo = rd.codigo; } }catch (InvalidOperationException) { rodada.sequencial = 1; rodada.codigo = "A"; } rodada.isAberta = true; rodada.dataFim = new DateTime(rodada.dataFim.Year, rodada.dataFim.Month, rodada.dataFim.Day, 23, 59, 59); db.Rodada.Add(rodada); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(rodada)); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return(RedirectToAction("Manage")); } if (ModelState.IsValid) { // Insert a new user into the database using (BarragemDbContext db = new BarragemDbContext()) { UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); db.SaveChanges(); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return(RedirectToLocal(returnUrl)); } else { ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public ActionResult Create(Pagamento pagamento) { try { using (TransactionScope scope = new TransactionScope()) { if (ModelState.IsValid) { pagamento.status = "Criado"; db.Pagamento.Add(pagamento); db.SaveChanges(); var barragens = db.BarragemView.Where(b => b.isAtiva && !b.isTeste && (bool)!b.soTorneio).ToList(); foreach (BarragemView barragem in barragens) { var pgBarragem = new PagamentoBarragem(); pgBarragem.barragemId = barragem.Id; pgBarragem.pagamentoId = pagamento.Id; pgBarragem.cobrar = true; pgBarragem.status = "Criado"; db.PagamentoBarragem.Add(pgBarragem); } db.SaveChanges(); scope.Complete(); return(RedirectToAction("Index")); } } } catch (Exception ex) { ViewBag.MsgErro = ex.Message; } return(View(pagamento)); }
public async Task ConfirmarNotificacao(Notificacao notificacao) { try { var response = await client.PostAsJsonAsync( "/transaction/notification", notificacao); if (response.IsSuccessStatusCode) { var retorno = await response.Content.ReadAsAsync <RetornoNotificacao>(); int id = Convert.ToInt32(retorno.status_request.items[0].item_id); var pb = db.PagamentoBarragem.Where(p => p.Id == id).SingleOrDefault(); if (retorno.status_request.result == "success") { if (retorno.status_request.status == "paid" || retorno.status_request.status == "reserved" || retorno.status_request.status == "completed") { pb.status = "Pago"; var barragem = db.Barragens.Find(pb.barragemId); if (barragem.isAtiva == false) { barragem.isAtiva = true; db.Entry(barragem).State = EntityState.Modified; db.SaveChanges(); } } else if (retorno.status_request.status == "canceled") { if (pb.status != "Pago") { pb.status = retorno.status_request.status; var barragem = db.Barragens.Find(pb.barragemId); barragem.isAtiva = false; db.Entry(barragem).State = EntityState.Modified; db.SaveChanges(); } } else if (retorno.status_request.status == "pending") { // não faz nada } else { pb.status = retorno.status_request.status; } db.Entry(pb).State = EntityState.Modified; db.SaveChanges(); if (retorno.status_request.status == "paid" || retorno.status_request.status == "reserved" || retorno.status_request.status == "completed") { Pagamento pagamento = db.Pagamento.Find(pb.pagamentoId); pagamento.arrecadado = db.PagamentoBarragem.Where(pg => pg.pagamentoId == pagamento.Id && pg.status == "Pago").Sum(pg => pg.valor); if (pagamento.arrecadado == pagamento.areceber) { pagamento.status = "Finalizado"; } else { pagamento.status = "Em aberto"; } db.Entry(pagamento).State = EntityState.Modified; db.SaveChanges(); } } else { pb.status = retorno.status_request.response_message; db.Entry(pb).State = EntityState.Modified; db.SaveChanges(); } } } catch (Exception e) { var log2 = new Log(); log2.descricao = "PagHiper: Exception:" + DateTime.Now + e.Message + ": transactionId:" + notificacao.transaction_id + ":" + notificacao.notification_id; db.Log.Add(log2); db.SaveChanges(); } }
public void GerarSnapshotDaLiga(Jogo jogo) { //verifica se todas as finais foram lançadas List <Jogo> finaisDoTorneio = db.Jogo.Where(j => j.torneioId == jogo.torneioId && j.faseTorneio == 1).ToList(); foreach (Jogo finalDeClasse in finaisDoTorneio) { if (!(finalDeClasse.situacao_Id == 4 || finalDeClasse.situacao_Id == 5 || finalDeClasse.situacao_Id == 6)) { //não gera novo ranking enquanto nao finalizar todas as classes do torneio return; } } List <TorneioLiga> ligasDoTorneio = db.TorneioLiga.Include(tl => tl.Liga).Where(tl => tl.TorneioId == jogo.torneioId).ToList(); foreach (TorneioLiga tl in ligasDoTorneio) { Snapshot ultimoSnap; try { ultimoSnap = db.Snapshot.Where(s => s.LigaId == tl.LigaId).OrderByDescending(s => s.Id).ToList().First(); } catch (Exception e) { ultimoSnap = null; } //para cada liga, gerar um snapshot Liga liga = tl.Liga; Snapshot novoSnap = new Snapshot { Data = DateTime.Now, LigaId = liga.Id }; db.Snapshot.Add(novoSnap); db.SaveChanges(); //para cada categoria da liga, gerar um ranking List <ClasseLiga> classesDaLiga = db.ClasseLiga.Include(cl => cl.Categoria).Where(cl => cl.LigaId == liga.Id).ToList(); foreach (ClasseLiga cl in classesDaLiga) { Categoria categoriaDaLiga = cl.Categoria; //copia os resultados que ja existem para o novo ranking List <SnapshotRanking> ultimoRankingDaCategoriaNaLiga = new List <SnapshotRanking>(); if (ultimoSnap != null) { ultimoRankingDaCategoriaNaLiga = db.SnapshotRanking .Where(sr => sr.CategoriaId == categoriaDaLiga.Id && sr.LigaId == liga.Id && sr.SnapshotId == ultimoSnap.Id).ToList(); } foreach (SnapshotRanking ultimoResultado in ultimoRankingDaCategoriaNaLiga) { SnapshotRanking novoResultado = new SnapshotRanking(); novoResultado.SnapshotId = novoSnap.Id; novoResultado.LigaId = ultimoResultado.LigaId; novoResultado.CategoriaId = ultimoResultado.CategoriaId; novoResultado.UserId = ultimoResultado.UserId; novoResultado.Pontuacao = ultimoResultado.Pontuacao; db.SnapshotRanking.Add(novoResultado); db.SaveChanges(); } //atualiza o ranking com os resultados do torneio ClasseTorneio classeTorneio = db.ClasseTorneio .Where(ct => ct.torneioId == jogo.torneioId && ct.categoriaId == categoriaDaLiga.Id) .ToList().First(); List <InscricaoTorneio> resultadosDoTorneio = db.InscricaoTorneio .Where(it => it.torneioId == jogo.torneioId && it.classe == classeTorneio.Id).ToList(); foreach (InscricaoTorneio resultado in resultadosDoTorneio) { try { SnapshotRanking ultimoRankingDoJogador = db.SnapshotRanking.Where(sr => sr.LigaId == liga.Id && sr.CategoriaId == categoriaDaLiga.Id && sr.UserId == resultado.userId && sr.SnapshotId == novoSnap.Id).Single(); int pontuacaoAtualizada = ultimoRankingDoJogador.Pontuacao + resultado.Pontuacao ?? 0; ultimoRankingDoJogador.Pontuacao = pontuacaoAtualizada; db.SaveChanges(); } catch (Exception e) { SnapshotRanking novoRanking = new SnapshotRanking(); novoRanking.SnapshotId = novoSnap.Id; novoRanking.LigaId = liga.Id; novoRanking.CategoriaId = categoriaDaLiga.Id; novoRanking.UserId = resultado.userId; novoRanking.Pontuacao = resultado.Pontuacao ?? 0; db.SnapshotRanking.Add(novoRanking); db.SaveChanges(); } } //coloca as posicoes do ranking List <SnapshotRanking> rankingAtual = db.SnapshotRanking.Where(sr => sr.LigaId == liga.Id && sr.CategoriaId == categoriaDaLiga.Id && sr.SnapshotId == novoSnap.Id).OrderByDescending(sr => sr.Pontuacao).ToList(); int i = 1; foreach (SnapshotRanking ranking in rankingAtual) { ranking.Posicao = i; db.SaveChanges(); i++; } } } }
public void Receber(string notificationCode, string notificationType, int ranking = 0) { var log = new Log(); log.descricao = "Chegou:" + DateTime.Now + ":" + notificationCode; db.Log.Add(log); db.SaveChanges(); var barragem = db.BarragemView.Find(ranking); AccountCredentials credentials = new AccountCredentials(barragem.emailPagSeguro, barragem.tokenPagSeguro); if (notificationType == "transaction") { // obtendo o objeto transaction a partir do código de notificação Transaction transaction = NotificationService.CheckTransaction(credentials, notificationCode); // Data da criação DateTime date = transaction.Date; // Data da última atualização DateTime lastEventDate = transaction.LastEventDate; // Código da transação string code = transaction.Code; // Refência string reference = transaction.Reference; // Valor bruto decimal grossAmount = transaction.GrossAmount; // Tipo int type = transaction.TransactionType; // Status /* Código Significado * 1 Aguardando pagamento: o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento. * 2 Em análise: o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação. * 3 Paga: a transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento. * 4 Disponível: a transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta. * 5 Em disputa: o comprador, dentro do prazo de liberação da transação, abriu uma disputa. * 6 Devolvida: o valor da transação foi devolvido para o comprador. * 7 Cancelada: a transação foi cancelada sem ter sido finalizada. * 8 Debitado: o valor da transação foi devolvido para o comprador. * 9 Retenção temporária: o comprador contestou o pagamento junto à operadora do cartão de crédito ou abriu uma demanda judicial ou administrativa (Procon). */ int status = transaction.TransactionStatus; // Valor líquido decimal netAmount = transaction.NetAmount; // Valor das taxas cobradas decimal feeAmount = transaction.FeeAmount; // Valor extra ou desconto decimal extraAmount = transaction.ExtraAmount; // Tipo de meio de pagamento PaymentMethod paymentMethod = transaction.PaymentMethod; string[] refs = reference.Split('-'); if (refs[0].Equals("T")) { // se for torneio int idInscricao = Convert.ToInt32(refs[1]); var inscricao = db.InscricaoTorneio.Find(idInscricao); if (status == 3) { inscricao.isAtivo = true; } inscricao.statusPagamento = status + ""; inscricao.formaPagamento = paymentMethod.PaymentMethodType + ""; inscricao.valor = (float)transaction.GrossAmount; db.Entry(inscricao).State = EntityState.Modified; db.SaveChanges(); var log2 = new Log(); log2.descricao = ranking + " movimentacao ok " + status + ":" + DateTime.Now + ":" + notificationCode; db.Log.Add(log2); db.SaveChanges(); // ativar segunda inscrição caso exista var listInscricao = db.InscricaoTorneio.Where(t => t.torneioId == inscricao.torneioId && t.userId == inscricao.userId && t.Id != inscricao.Id).ToList(); if (listInscricao.Count() > 0) { var inscricao2 = listInscricao[0]; if (status == 3) { inscricao2.isAtivo = true; } inscricao2.statusPagamento = status + ""; inscricao2.formaPagamento = paymentMethod.PaymentMethodType + ""; inscricao2.valor = (float)transaction.GrossAmount; db.Entry(inscricao2).State = EntityState.Modified; db.SaveChanges(); } } } }
public void gravarPontuacaoNaRodada(int idRodada, UserProfile jogador, double pontosConquistados, bool isReprocessamento = false) { try { if (jogador.situacao.Equals("curinga") || jogador.situacao.Equals("pendente")) { return; } Rancking ran = null; double pontuacaoTotal = 0; try { int quantidadeDeRodadasParaPontuacao = 9; Rodada rodadaAtual = db.Rodada.Where(r => r.Id == idRodada).Single(); if (rodadaAtual.temporada.iniciarZerada) { int quantidadeDeRodadasRealizadas = db.Rodada.Where(r => r.temporadaId == rodadaAtual.temporadaId && r.Id != idRodada).Count(); if (quantidadeDeRodadasRealizadas < quantidadeDeRodadasParaPontuacao) { quantidadeDeRodadasParaPontuacao = quantidadeDeRodadasRealizadas; } } if (quantidadeDeRodadasParaPontuacao > 0) { pontuacaoTotal = db.Rancking.Where(r => r.rodada.isAberta == false && r.userProfile_id == jogador.UserId && r.rodada_id < idRodada). OrderByDescending(r => r.rodada_id).Take(quantidadeDeRodadasParaPontuacao).Sum(r => r.pontuacao); } } catch (Exception e) { return; } if (isReprocessamento) { ran = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Single(); ran.pontuacao = Math.Round(pontosConquistados, 2); //ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); db.SaveChanges(); } else { var naoExisteRanking = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Count(); if (naoExisteRanking == 0) { ran = new Rancking(); ran.rodada_id = idRodada; ran.pontuacao = Math.Round(pontosConquistados, 2); ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); ran.posicao = 0; ran.userProfile_id = jogador.UserId; ran.classeId = jogador.classeId; db.Rancking.Add(ran); db.SaveChanges(); } } } catch (Exception e) { System.ArgumentException argEx = new System.ArgumentException("Jogador:" + jogador.UserId, "Jogador:" + jogador.UserId, e); throw argEx; } }