public List <BE.Partido> ObtenerPartidosSinCalificacion()
        {
            BLL.Equipo        bllEquipo   = new BLL.Equipo();
            BLL.Fecha         bllFecha    = new BLL.Fecha();
            List <BE.Partido> lstPartidos = _dalManagerPartido.ObtenerPartidosSinCalificacion();

            BLL.Arbitro bllArbitro = new BLL.Arbitro();

            foreach (BE.Partido bePartido in lstPartidos)
            {
                bePartido.Equipo1            = bllEquipo.ObtnerEquipoPorIdReducido(bePartido.Equipo1.Id);
                bePartido.Equipo2            = bllEquipo.ObtnerEquipoPorIdReducido(bePartido.Equipo2.Id);
                bePartido.FechaDelCampeonato = bllFecha.ObtenerFechaPorIdReducido(bePartido.FechaDelCampeonato.Id);
                bePartido.ArbitrosYTipos     = bllArbitro.ObtnerArbitrosYTiposPorPartidoId(bePartido.Id);
            }

            return(lstPartidos);
        }
        /// <summary>
        /// Does the asignation.
        /// </summary>
        /// <param name="partidos">The Partidoes.</param>
        /// <param name="arbitros">The Arbitros.</param>
        /// <param name="deporte"></param>
        /// <returns></returns>
        public List <BE.Partido> RealizarDesignacion(List <BE.Partido> partidos, List <BE.Arbitro> arbitros, BE.Deporte deporte)
        {
            BLL.Arbitro logicalArbitro = new BLL.Arbitro();

            //Listas Auxiliares//
            List <BE.Arbitro> arbitroListAux = new List <BE.Arbitro>(arbitros);

            BLL.TipoArbitro       logicalTipoArbitro = new BLL.TipoArbitro();
            List <BE.TipoArbitro> tipoArbitros       = logicalTipoArbitro.ObtenerTipoArbitros();

            Logger.Log.Info("-------COMIENZO DE LA ASIGNACION-------");
            //Logger.Log.Info("-------FECHA NUMERO " + Partidoes.PartidodayNumber + "------------------");
            Logger.Log.Info("---------------------------------------");
            foreach (BE.TipoArbitro tipoArbitro in tipoArbitros)
            {
                AsignarArbitros(partidos, arbitroListAux, logicalArbitro, tipoArbitro);
            }
            return(partidos);
        }
        /// <summary>
        /// Assigns the primary Arbitro.
        /// </summary>
        /// <param name="partidos">The Partidoes.</param>
        /// <param name="arbitros">The Arbitros.</param>
        /// <param name="logicalArbitro">The logical Arbitro.</param>
        /// <param name="tipoArbitro"></param>
        public void AsignarArbitros(List <BE.Partido> partidos, List <BE.Arbitro> arbitros, BLL.Arbitro logicalArbitro, BE.TipoArbitro tipoArbitro)
        {
            //BLL.Partido logicalPartido = new BLL.Partido();
            foreach (BE.Partido partido in partidos)
            {
                foreach (BE.Arbitro arbitro in arbitros)
                {
                    Logger.Log.Info("Partido: " + partido.Equipo1.Nombre + " vs. " + partido.Equipo2.Nombre);
                    Logger.Log.Info("Arbitro: " + arbitro.Apellido + " " + arbitro.Nombre);
                    Logger.Log.Info("Tipo de Arbitro: " + tipoArbitro.Descripcion);
                    if (arbitro.Habilitado == true)
                    {
                        if (logicalArbitro.PuedeDirigir(arbitro, partido, tipoArbitro))
                        {
                            Logger.Log.Info("Resultado: Asignado.");
                            Logger.Log.Info("---------------------------------------");

                            //if (tipoArbitro.Descripcion == "Principal")
                            //{
                            //    partido.Principal = arbitro;
                            //}
                            //else
                            //{
                            //    partido.Asistente = arbitro;
                            //}

                            partido.ArbitrosYTipos.Add(arbitro, tipoArbitro);
                            ActualizarUltimosPartidosDirigidos(arbitro, partido);
                            ActualizarUltimosEquiposDirigidos(arbitro, partido);

                            ////Descomentar para que guarde la asignacion.
                            //logicalPartido.AddReferedPartido(Arbitro.IdArbitro, Partido.IdPartido, TipoArbitro.IdTipoArbitro);

                            arbitros.Remove(arbitro);
                            break;
                        }
                    }
                    else
                    {
                        Logger.Log.Info("Resultado: Estado de arbitro no disponible.");
                        Logger.Log.Info("---------------------------------------");
                    }
                }
            }
        }