public ActionResult EditSumula([Bind(Include = "IDSumula,IDPartidaCampeonato,sObservacao,dDataCadastro")] Sumula sumula, int?iQntGols1, int?iQntGols2) { if (ModelState.IsValid) { if (iQntGols1 < 0 || iQntGols2 < 0) { return(RedirectToAction("Create/" + sumula.IDSumula).ComMensagem("Quantidade de gols não pode ser menor que 0.", "alert-warning")); } using (var transaction = db.Database.BeginTransaction()) { try { PartidaCampeonato partidaCampeonato = db.PartidaCampeonato.Find(sumula.IDPartidaCampeonato); if (partidaCampeonato == null) { return(HttpNotFound()); } partidaCampeonato.iQntGols1 = iQntGols1; partidaCampeonato.iQntGols2 = iQntGols2; db.Entry(partidaCampeonato).State = EntityState.Modified; db.Entry(partidaCampeonato).Property("dDataPartida").IsModified = false; db.Entry(partidaCampeonato).Property("iRodada").IsModified = false; db.Entry(partidaCampeonato).Property("IDInscrito1").IsModified = false; db.Entry(partidaCampeonato).Property("IDInscrito2").IsModified = false; db.Entry(partidaCampeonato).Property("sHoraPartida").IsModified = false; db.Entry(partidaCampeonato).Property("dDataCadastro").IsModified = false; db.SaveChanges(); db.Entry(sumula).State = EntityState.Modified; db.Entry(sumula).Property("dDataCadastro").IsModified = false; db.SaveChanges(); transaction.Commit(); return(RedirectToAction("Index").ComMensagem("Operação realizada com sucesso.", "alert-success")); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(RedirectToAction("Create/" + sumula.IDSumula).ComMensagem("Erro ao realizar a operação.", "alert-danger")); } } } return(View("Index")); }
// GET: Sumula/Create public ActionResult CreateUsuario(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Sumula sumula = db.Sumula.Find(id); if (sumula == null) { return(HttpNotFound()); } ViewBag.iQntGols1 = sumula.PartidaCampeonato.iQntGols1; ViewBag.iQntGols2 = sumula.PartidaCampeonato.iQntGols2; jogadoresInscritos(sumula.PartidaCampeonato.IDInscrito1, sumula.PartidaCampeonato.IDInscrito2, id); return(View(sumula)); }
public ActionResult Create([Bind(Include = "IDPartidaCampeonato,IDInscrito1,IDInscrito2,iQntGols1,iQntGols2,dDataPartida,sHoraPartida,iRodada,dDataCadastro")] PartidaCampeonato partidaCampeonato) { if (ModelState.IsValid) { if (partidaCampeonato.IDInscrito1 == partidaCampeonato.IDInscrito2) { ViewBag.ListaCampeonato = db.Campeonato; return(View(partidaCampeonato).ComMensagem("Time 1 não pode ser igual a time 2.", "alert-warning")); } using (var transaction = db.Database.BeginTransaction()) { try { db.PartidaCampeonato.Add(partidaCampeonato); db.SaveChanges(); Sumula sumula = new Sumula(); sumula.IDPartidaCampeonato = partidaCampeonato.IDPartidaCampeonato; sumula.sObservacao = ""; db.Sumula.Add(sumula); db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { ex.Message.ToString(); transaction.Rollback(); } } return(RedirectToAction("Index").ComMensagem("Operação realizada com sucesso.", "alert-success")); } ViewBag.ListaCampeonato = db.Campeonato; return(View(partidaCampeonato)); }
public ActionResult Create([Bind(Include = "IDSumula,IDPartidaCampeonato,sObservacao,dDataCadastro")] Sumula sumula) { if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { PartidaCampeonato partidaCampeonato = new PartidaCampeonato(); partidaCampeonato.iQntGols1 = sumula.PartidaCampeonato.iQntGols1; partidaCampeonato.iQntGols2 = sumula.PartidaCampeonato.iQntGols2; db.Entry(partidaCampeonato).State = EntityState.Modified; db.Entry(partidaCampeonato).Property("IDInscrito1").IsModified = false; db.Entry(partidaCampeonato).Property("IDInscrito2").IsModified = false; db.Entry(partidaCampeonato).Property("dDataPartida").IsModified = false; db.Entry(partidaCampeonato).Property("sHoraPartida").IsModified = false; db.Entry(partidaCampeonato).Property("dDataCadastro").IsModified = false; db.SaveChanges(); db.Entry(sumula).State = EntityState.Modified; db.Entry(sumula).Property("dDataCadastro").IsModified = false; db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { ex.Message.ToString(); transaction.Rollback(); } } } return(View(sumula)); }
public ActionResult GerarPartidasCampeonato(int?IDCampeonato, int?IDGrupoP) { try { ViewBag.ListaCampeonato = db.Campeonato; CampeonatoGrupo campeonatoGrupo = new CampeonatoGrupo(); IEnumerable <IDGrupo> actionTypes = Enum.GetValues(typeof(IDGrupo)) .Cast <IDGrupo>(); ViewBag.ListaGrupos = from action in actionTypes select new SelectListItem { Text = action.ToString(), Value = ((int)action).ToString() }; Random rnd = new Random(); int qtde_times = 0; //int iRodada = 1; //int iQntdJogoTimeRodada = 0; int iQntdRodadas = 0; int cont = 0; int turno = 0; int[] timesInscritos; string[] partidas; if (IDCampeonato == null) { return(View().ComMensagem("Selecione o Campeonato.", "alert-warning")); } else { var campeonato = db.Campeonato.Find(IDCampeonato); switch (campeonato.iTipoCampeonato) { case TipoCampeonato.Grupos: if (IDGrupoP == null) { return(View().ComMensagem("Selecione o grupo.", "alert-warning")); } else { IDGrupo grupo = (IDGrupo)Enum.ToObject(typeof(IDGrupo), IDGrupoP); var inscritosGrupos = db.CampeonatoGrupo.Where(p => p.IDGrupo == grupo && p.Inscrito.PreInscrito.IDCampeonato == IDCampeonato).ToList(); int[] timesGrupo = new int[inscritosGrupos.Count]; foreach (CampeonatoGrupo e in inscritosGrupos) { timesGrupo[cont] = e.IDInscrito; cont++; } timesInscritos = timesGrupo; } break; case TipoCampeonato.MataMata: return(View().ComMensagem("Regra do Mata-Mata não foi emplementada.", "alert-warning")); default: var inscritos = db.Inscrito.Where(p => p.PreInscrito.Campeonato.IDCampeonato == IDCampeonato).ToList(); int[] times = new int[inscritos.Count]; foreach (Inscrito e in inscritos) { times[cont] = e.IDInscrito; cont++; } timesInscritos = times; break; } qtde_times = timesInscritos.Count(); // Quantidade de Times if (qtde_times % 2 == 0) { iQntdRodadas = qtde_times - 1; } else { iQntdRodadas = qtde_times; } if (campeonato.bIdaVolta) { turno = 2; partidas = new string[calculaFatorial(qtde_times) / calculaFatorial(qtde_times - 2)]; } else { turno = 1; partidas = new string[calculaFatorial(qtde_times) / calculaFatorial(qtde_times - 2) / 2]; } cont = 0; for (int t = 0; t < turno; t++) { for (int i = 0; i < qtde_times; i++) { //For para caminhar entre os times for (int j = i; j < qtde_times; j++) { //For para caminha entre os adversários if (timesInscritos[i] != timesInscritos[j]) { using (var transaction = db.Database.BeginTransaction()) { try { PartidaCampeonato partidaCampeonato = new PartidaCampeonato(); partidaCampeonato.IDInscrito1 = timesInscritos[i]; partidaCampeonato.IDInscrito2 = timesInscritos[j]; partidaCampeonato.iQntGols1 = 0; partidaCampeonato.iQntGols2 = 0; partidaCampeonato.dDataPartida = DateTime.Now; partidaCampeonato.dDataCadastro = DateTime.Now; partidaCampeonato.sHoraPartida = ""; partidaCampeonato.iRodada = 0; db.PartidaCampeonato.Add(partidaCampeonato); db.SaveChanges(); Sumula sumula = new Sumula(); sumula.IDPartidaCampeonato = partidaCampeonato.IDPartidaCampeonato; sumula.sObservacao = ""; sumula.dDataCadastro = DateTime.Now; db.Sumula.Add(sumula); db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { ex.Message.ToString(); transaction.Rollback(); } } //verifica pra não deixar jogar um time contra ele mesmo //partidaCampeonato.IDInscrito1 = timesInscritos[i]; //partidaCampeonato.IDInscrito2 = timesInscritos[j]; //partidaCampeonato.iQntGols1 = 0; //partidaCampeonato.iQntGols2 = 0; //partidaCampeonato.dDataPartida = DateTime.Now; //partidaCampeonato.dDataCadastro = DateTime.Now; //partidaCampeonato.sHoraPartida = ""; //iQntdJogoTimeRodada = db.PartidaCampeonato.Where(p => p.iRodada == iRodada && (p.IDInscrito1 == partidaCampeonato.IDInscrito1 || p.IDInscrito2 == partidaCampeonato.IDInscrito1 || p.IDInscrito1 == partidaCampeonato.IDInscrito2 || p.IDInscrito2 == partidaCampeonato.IDInscrito2)).Count(); //while (iQntdJogoTimeRodada == 0) //{ // iRodada = rnd.Next(1, iQntdRodadas); // iQntdJogoTimeRodada = db.PartidaCampeonato.Where(p => p.iRodada == iRodada && (p.IDInscrito1 == partidaCampeonato.IDInscrito1 || p.IDInscrito2 == partidaCampeonato.IDInscrito1 || p.IDInscrito1 == partidaCampeonato.IDInscrito2 || p.IDInscrito2 == partidaCampeonato.IDInscrito2)).Count(); // cont++; // if (cont >= qtde_times + iQntdRodadas) // { // iRodada = qtde_times; // break; // } //} //cont = 0; //partidaCampeonato.iRodada = iRodada; //partidaCampeonato.iRodada = 1; //db.PartidaCampeonato.Add(partidaCampeonato); //db.SaveChanges(); } } } } } } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { System.Console.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } return(View().ComMensagem("Erro ao realizar a operação.", "alert-danger")); } return(RedirectToAction("Index").ComMensagem("Partidas geradas com sucesso.", "alert-success")); }