コード例 #1
0
        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"));
        }
コード例 #2
0
        // 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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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"));
        }