private bool DirigidoLosUltimos15Dias(BE.Partido partido, BE.Arbitro arbitro) { if (arbitro.UltimosPartidosDirigidos != null) { foreach (var partidoViejo in arbitro.UltimosPartidosDirigidos) { if (partidoViejo.Equipo1.Equals(partido.Equipo1)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo1.Nombre + " en los últimos 15 días."); Logger.Log.Info("---------------------------------------"); return(true); } if (partidoViejo.Equipo1.Equals(partido.Equipo2)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo2.Nombre + " en los últimos 15 días."); Logger.Log.Info("---------------------------------------"); return(true); } if (partidoViejo.Equipo2.Equals(partido.Equipo1)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo1.Nombre + " en los últimos 15 dias."); Logger.Log.Info("---------------------------------------"); return(true); } if (partidoViejo.Equipo2.Equals(partido.Equipo2)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo2.Nombre + " en los últimos 15 dias."); Logger.Log.Info("---------------------------------------"); return(true); } } } return(false); }
/// <summary> /// Updates the last fifty days refered. /// </summary> /// <param name="arbitro">The Arbitro.</param> /// <param name="partido">The Partido.</param> private void ActualizarUltimosPartidosDirigidos(BE.Arbitro arbitro, BE.Partido partido) { bool dropPartido = true; TimeSpan ts; while (dropPartido && arbitro.UltimosPartidosDirigidos != null) { if (arbitro.UltimosPartidosDirigidos.Count != 0) { BE.Partido oldPartido = arbitro.UltimosPartidosDirigidos.Peek(); ts = partido.Fecha - oldPartido.Fecha; if ((ts.Days < 15) || (oldPartido == null)) { dropPartido = false; } else { arbitro.UltimosPartidosDirigidos.Dequeue(); } } else { dropPartido = false; } } arbitro.UltimosPartidosDirigidos.Enqueue(partido); }
public BE.Arbitro ObtnerArbitroPorId(int idArbitro) { BE.Arbitro beArbitro = _dalManagerArbitro.ObtenerArbitroPorId(idArbitro); beArbitro.Deporte = _bllDeporte.ObtnerDeportePorId(beArbitro.Deporte.Id); return(beArbitro); }
private Resultado ValidarExamenFisico(BE.Arbitro arbitro) { if (arbitro.ExamenFisicoAprobado == true) { return(new Resultado(false, "Examen Físico aprobado.")); } return(new Resultado(true, "El árbitro no se puede dar de alta/modificar, no posee examén físico aprobado.")); }
private Resultado ValidarTituloValidoDeArgentina(BE.Arbitro arbitro) { if (arbitro.PoseeTituloValidoArgentina == true) { return(new Resultado(false, "Posee titulo válido para Argentina.")); } return(new Resultado(true, "El árbitro no se puede dar de alta/modificar, no posee titulo válido para Argentina.")); }
/// <summary> /// Updates the last Arbitrod teams. /// </summary> /// <param name="arbitro">The Arbitro.</param> /// <param name="partido">The Partido.</param> private void ActualizarUltimosEquiposDirigidos(BE.Arbitro arbitro, BE.Partido partido) { if (arbitro.UltimosEquiposDirigidos.Count == 4) { arbitro.UltimosEquiposDirigidos.Dequeue(); arbitro.UltimosEquiposDirigidos.Dequeue(); } arbitro.UltimosEquiposDirigidos.Enqueue(partido.Equipo1); arbitro.UltimosEquiposDirigidos.Enqueue(partido.Equipo2); }
public ResultadoBd Borrar(BE.Arbitro pArbitro, BE.Arbitro pArbitroAnt, int idBitacora) { ResultadoBd resultado = _accesoBaseDeDatos.Borrar(pArbitro); if (resultado == ResultadoBd.OK) { resultado = InsertarAuditoria(pArbitroAnt, idBitacora); } return(resultado); }
public List <BE.Arbitro> ObtenerArbitrosConNivel() { var ls = new List <BE.Arbitro>(); //var pars = new IDbDataParameter[1]; //pars[0] = _accesoBaseDeDatos.CrearParametro("@IdPartido", idPartido); string query = @" SELECT a.* FROM Arbitro a where a.IdNivel != 0"; var dt = _accesoBaseDeDatos.Seleccionar(query, null); if (dt.Rows.Count == 0) { return(null); } foreach (DataRow row in dt.Rows) { var aArbitro = new BE.Arbitro { Id = Convert.ToInt32(row["Id"]), Nombre = row["Nombre"].ToString().Trim(), Apellido = row["Apellido"].ToString().Trim(), Deporte = new BE.Deporte() { Id = Convert.ToInt32(row["IdDeporte"]) }, Habilitado = Convert.ToBoolean(row["Habilitado"].ToString().Trim()), FechaNacimiento = Convert.ToDateTime(row["FechaNacimiento"].ToString().Trim()), Genero = new BE.Genero() { Id = Convert.ToInt32(row["IdGenero"]) }, DNI = row["Dni"].ToString().Trim(), Ranking = Convert.ToInt32(row["Id"]), NotaAFA = int.Parse(row["NotaAFA"].ToString()), PoseeTituloValidoArgentina = row["PoseeTituloValidoArgentina"].ToString() == "1" ? true : false, PoseeLicenciaInternacional = row["PoseeLicenciaInternacional"].ToString() == "1" ? true : false, ExamenFisicoAprobado = row["ExamenFisicoAprobado"].ToString() == "1" ? true : false, ExamenTeoricoAprobado = row["ExamenTeoricoAprobado"].ToString() == "1" ? true : false, Nivel = new BE.Nivel() { Id = Convert.ToInt32(row["IdNivel"]) }, UltimosEquiposDirigidos = new Queue <BE.Equipo>(), UltimosPartidosDirigidos = new Queue <BE.Partido>() }; ls.Add(aArbitro); } return(ls); }
public List <BE.Arbitro> Leer() { var ls = new List <BE.Arbitro>(); BE.Arbitro beArbitro = new BE.Arbitro(); var dt = _accesoBaseDeDatos.Seleccionar(new BE.Arbitro(), false); foreach (DataRow row in dt.Rows) { var aArbitro = new BE.Arbitro { Id = Convert.ToInt32(row["Id"]), Nombre = row["Nombre"].ToString().Trim(), Apellido = row["Apellido"].ToString().Trim(), Deporte = new BE.Deporte() { Id = Convert.ToInt32(row["IdDeporte"]) }, Habilitado = row["Habilitado"].ToString() == "True" ? true : false, FechaNacimiento = Convert.ToDateTime(row["FechaNacimiento"].ToString().Trim()), Genero = new BE.Genero() { Id = Convert.ToInt32(row["IdGenero"]) }, DNI = row["Dni"].ToString().Trim(), Ranking = int.Parse(row["Ranking"].ToString()), AniosExperiencia = int.Parse(row["AniosExperiencia"].ToString()), NotaAFA = int.Parse(row["NotaAFA"].ToString()), PoseeTituloValidoArgentina = row["PoseeTituloValidoArgentina"].ToString() == "True" ? true : false, PoseeLicenciaInternacional = row["PoseeLicenciaInternacional"].ToString() == "True" ? true : false, ExamenFisicoAprobado = row["ExamenFisicoAprobado"].ToString() == "True" ? true : false, ExamenTeoricoAprobado = row["ExamenTeoricoAprobado"].ToString() == "True" ? true : false, UltimosEquiposDirigidos = new Queue <BE.Equipo>(), UltimosPartidosDirigidos = new Queue <BE.Partido>() }; if (string.IsNullOrEmpty(row["IdNivel"].ToString())) { aArbitro.Nivel = null; } else { aArbitro.Nivel = new BE.Nivel() { Id = Convert.ToInt32(row["IdNivel"]) }; } ls.Add(aArbitro); } return(ls); }
public int CompareTo(BE.Arbitro otroArbitro) { if (this.Ranking > otroArbitro.Ranking) { return(1); } else { return(-1); } }
public BE.Arbitro ObtenerArbitroPorId(int idArbitro) { var dtArbitro = _accesoBaseDeDatos.Seleccionar(string.Format("SELECT * FROM ARBITRO WHERE ID = {0}", idArbitro), null); if (dtArbitro.Rows.Count == 0) { return(null); } var row = dtArbitro.Rows[0]; var aArbitro = new BE.Arbitro { Id = Convert.ToInt32(row["Id"]), Nombre = row["Nombre"].ToString().Trim(), Apellido = row["Apellido"].ToString().Trim(), Deporte = new BE.Deporte() { Id = Convert.ToInt32(row["IdDeporte"]) }, Habilitado = Convert.ToBoolean(row["Habilitado"].ToString().Trim()), FechaNacimiento = Convert.ToDateTime(row["FechaNacimiento"].ToString().Trim()), Genero = new BE.Genero() { Id = Convert.ToInt32(row["IdGenero"]) }, DNI = row["Dni"].ToString().Trim(), Ranking = int.Parse(row["Ranking"].ToString()), AniosExperiencia = int.Parse(row["AniosExperiencia"].ToString()), NotaAFA = int.Parse(row["NotaAFA"].ToString()), PoseeTituloValidoArgentina = row["PoseeTituloValidoArgentina"].ToString() == "1" ? true : false, PoseeLicenciaInternacional = row["PoseeLicenciaInternacional"].ToString() == "1" ? true : false, ExamenFisicoAprobado = row["ExamenFisicoAprobado"].ToString() == "1" ? true : false, ExamenTeoricoAprobado = row["ExamenTeoricoAprobado"].ToString() == "1" ? true : false, UltimosEquiposDirigidos = new Queue <BE.Equipo>(), UltimosPartidosDirigidos = new Queue <BE.Partido>() }; if (string.IsNullOrEmpty(row["IdNivel"].ToString())) { aArbitro.Nivel = null; } else { aArbitro.Nivel = new BE.Nivel() { Id = Convert.ToInt32(row["IdNivel"]) }; } return(aArbitro); }
public List <BE.Arbitro> AsignarNiveles(List <BE.Arbitro> arbitrosSinNivel) { try { ResultadoBd rdb = ResultadoBd.ERROR; Arbitro arbitroDal = new Arbitro(); BE.Arbitro arbitroAnt; DAL.Bitacora bitacora = new Bitacora(); List <BE.Arbitro> lstActualizada = new List <BE.Arbitro>(); foreach (BE.Arbitro arbitro in arbitrosSinNivel) { arbitroAnt = new BE.Arbitro() { AniosExperiencia = arbitro.AniosExperiencia, Apellido = arbitro.Apellido, Deporte = arbitro.Deporte, DNI = arbitro.DNI, Habilitado = arbitro.Habilitado, ExamenFisicoAprobado = arbitro.ExamenFisicoAprobado, ExamenTeoricoAprobado = arbitro.ExamenTeoricoAprobado, FechaNacimiento = arbitro.FechaNacimiento, Genero = arbitro.Genero, Id = arbitro.Id, PoseeLicenciaInternacional = arbitro.PoseeLicenciaInternacional, Nivel = arbitro.Nivel ?? new BE.Nivel() { Id = 0 }, Nombre = arbitro.Nombre, NotaAFA = arbitro.NotaAFA, Ranking = arbitro.Ranking, PoseeTituloValidoArgentina = arbitro.PoseeTituloValidoArgentina, UltimosEquiposDirigidos = arbitro.UltimosEquiposDirigidos, UltimosPartidosDirigidos = arbitro.UltimosPartidosDirigidos }; arbitro.Nivel = ObtenerNivel(arbitro); lstActualizada.Add(arbitro); rdb = arbitroDal.Actualizar(arbitro, arbitroAnt, bitacora.ObtenerMaxId()); } return(lstActualizada); } catch (Exception e) { Logger.Log.Error("Error en AsignarNiveles. Error: " + e.Message); return(null); } }
private Resultado ValidarMayoriaDeEdad(BE.Arbitro arbitro) { DateTime now = DateTime.Today; int age = now.Year - arbitro.FechaNacimiento.Year; if (arbitro.FechaNacimiento > now.AddYears(-age)) { age--; } if (age >= 18) { return(new Resultado(false, "Es mayor de 18 años.")); } return(new Resultado(true, "El árbitro no se puede dar de alta/modificar, no posee mayoría de edad.")); }
/// <summary> /// Quita un Arbitro. /// </summary> /// <param name="pArbitro">Arbitro a quitar.</param> /// <returns></returns> public Resultado Quitar(BE.Arbitro pArbitro) { _bllBitacora.GrabarBitacora(ManejadorSesion.Instancia.ObtenerSesion().Usuario, "Baja de Árbitro", new BE.TipoEvento() { Id = 6, Descripcion = "Baja" }); ResultadoBd resultado = _dalManagerArbitro.Borrar(pArbitro, _dalManagerArbitro.ObtenerArbitroPorId(pArbitro.Id), _bllBitacora.ObtenerBitacoraMaxId()); if (resultado == ResultadoBd.OK) { return(new Resultado(false, "Ok")); } return(new Resultado(false, "No se pudo borrar el Arbitro.")); }
public bool PuedeDirigir(BE.Arbitro arbitro, BE.Partido partido, BE.TipoArbitro tipoArbitro) { BLL.NivelRegla levelRule = new NivelRegla(); if (this.EquipoDirigido(partido, arbitro)) { return(false); } if (this.DirigidoLosUltimos15Dias(partido, arbitro)) { return(false); } if (levelRule.PuedeDirigirPartidoComoTipoArbitro(arbitro, partido, tipoArbitro)) { return(true); } return(true); }
private bool EquipoDirigido(BE.Partido partido, BE.Arbitro arbitro) { foreach (var team in arbitro.UltimosEquiposDirigidos) { if (partido.Equipo1.Equals(team)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo1.Nombre + " equipo en la última fecha."); Logger.Log.Info("---------------------------------------"); return(true); } if (partido.Equipo2.Equals(team)) { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " dirigió a " + partido.Equipo2.Nombre + " equipo en la última fecha."); Logger.Log.Info("---------------------------------------"); return(true); } } return(false); }
public bool PuedeDirigirPartidoComoTipoArbitro(BE.Arbitro arbitro, BE.Partido partido, BE.TipoArbitro tipoDeArbitroAAsignar) { foreach (BE.NivelRegla aLevelRule in arbitro.Nivel.ReglasDeNivel) { if (partido.Equipo1.Categoria.Equals(aLevelRule.Categoria)) { if (tipoDeArbitroAAsignar.Equals(aLevelRule.TipoArbitro)) { return(true); } else { Logger.Log.Info("Resultado: Fallido Razon: Arbitro " + arbitro.Apellido + " no puede ser " + tipoDeArbitroAAsignar.Descripcion + " de este partido."); Logger.Log.Info("Nivel del árbitro: " + arbitro.Nivel.NombreNivel + " - Categoría del partido: " + partido.Equipo1.Categoria.Descripcion); Logger.Log.Info("---------------------------------------"); } } } return(false); }
/// <summary> /// Edita un Arbitro. /// </summary> /// <param name="pArbitro">Arbitro a editar.</param> /// <returns></returns> public Resultado Editar(BE.Arbitro pArbitro) { Resultado result = CorrerValidaciones(pArbitro); if (!result.HayError) { _bllBitacora.GrabarBitacora(ManejadorSesion.Instancia.ObtenerSesion().Usuario, "Modificación de Árbitro", new BE.TipoEvento() { Id = 7, Descripcion = "Modificación" }); ResultadoBd resultado = _dalManagerArbitro.Actualizar(pArbitro, _dalManagerArbitro.ObtenerArbitroPorId(pArbitro.Id), _bllBitacora.ObtenerBitacoraMaxId()); if (resultado == ResultadoBd.OK) { return(new Resultado(false, "Ok")); } } return(new Resultado(true, result.Descripcion)); }
public Resultado CorrerValidaciones(BE.Arbitro arbitro) { Resultado resultado = ValidarMayoriaDeEdad(arbitro); if (resultado.HayError) { return(resultado); } resultado = ValidarTituloValidoDeArgentina(arbitro); if (resultado.HayError) { return(resultado); } resultado = ValidarExamenTeorico(arbitro); if (resultado.HayError) { return(resultado); } resultado = ValidarExamenFisico(arbitro); return(resultado); }
private ResultadoBd InsertarAuditoria(BE.Arbitro pArbitro, int idBitacora) { ArbitroAud arbitroAud = new ArbitroAud() { //IdArbitro = pArbitro.Id, Nombre = pArbitro.Nombre, Apellido = pArbitro.Apellido, Habilitado = pArbitro.Habilitado, FechaNacimiento = pArbitro.FechaNacimiento, Genero = pArbitro.Genero, DNI = pArbitro.DNI, Deporte = pArbitro.Deporte, Nivel = pArbitro.Nivel, Ranking = pArbitro.Ranking, AniosExperiencia = pArbitro.AniosExperiencia, NotaAFA = pArbitro.NotaAFA, //IdBitacora = idBitacora, Bitacora = new BE.Bitacora() { Id = idBitacora }, PoseeTituloValidoArgentina = pArbitro.PoseeTituloValidoArgentina, PoseeLicenciaInternacional = pArbitro.PoseeLicenciaInternacional, ExamenFisicoAprobado = pArbitro.ExamenFisicoAprobado, ExamenTeoricoAprobado = pArbitro.ExamenTeoricoAprobado }; string query = string.Empty; if (arbitroAud.Nivel != null) { query = string.Format(@"INSERT INTO ARBITROAUD([Nombre],[Apellido],[FechaNacimiento],[IdGenero],[Dni],[Ranking],[AniosExperiencia],[NotaAFA],[IdNivel],[IdDeporte],[Habilitado],[IdArbitro],[IdBitacora], [PoseeTituloValidoArgentina],[PoseeLicenciaInternacional],[ExamenFisicoAprobado],[ExamenTeoricoAprobado]) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}', '{16}')", arbitroAud.Nombre, arbitroAud.Apellido, arbitroAud.FechaNacimiento.ToString("yyyy-MM-dd"), arbitroAud.Genero.Id, arbitroAud.DNI, arbitroAud.Ranking, arbitroAud.AniosExperiencia, arbitroAud.NotaAFA, arbitroAud.Nivel.Id, arbitroAud.Deporte.Id, arbitroAud.Habilitado == true ? 1 : 0, arbitroAud.Id, //arbitroAud.IdBitacora, arbitroAud.Bitacora.Id, arbitroAud.PoseeTituloValidoArgentina == true ? 1 : 0, arbitroAud.PoseeLicenciaInternacional == true ? 1 : 0, arbitroAud.ExamenFisicoAprobado == true ? 1 : 0, arbitroAud.ExamenTeoricoAprobado == true ? 1 : 0 ); } else { query = string.Format(@"INSERT INTO ARBITROAUD([Nombre],[Apellido],[FechaNacimiento],[IdGenero],[Dni],[Ranking],[AniosExperiencia],[NotaAFA],[IdDeporte],[Habilitado],[IdArbitro],[IdBitacora], [PoseeTituloValidoArgentina],[PoseeLicenciaInternacional],[ExamenFisicoAprobado],[ExamenTeoricoAprobado]) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}')", arbitroAud.Nombre, arbitroAud.Apellido, arbitroAud.FechaNacimiento.ToString("yyyy-MM-dd"), arbitroAud.Genero.Id, arbitroAud.DNI, arbitroAud.Ranking, arbitroAud.AniosExperiencia, arbitroAud.NotaAFA, arbitroAud.Deporte.Id, arbitroAud.Habilitado == true ? 1 : 0, arbitroAud.Id, //arbitroAud.IdBitacora, arbitroAud.Bitacora.Id, arbitroAud.PoseeTituloValidoArgentina == true ? 1 : 0, arbitroAud.PoseeLicenciaInternacional == true ? 1 : 0, arbitroAud.ExamenFisicoAprobado == true ? 1 : 0, arbitroAud.ExamenTeoricoAprobado == true ? 1 : 0 ); } return(_accesoBaseDeDatos.Ejecutar(query.Trim(), null)); }
public BE.Nivel ObtenerNivel(BE.Arbitro arbitro) { Logger.Log.Info("*********** Definición de nivel de árbitro: " + arbitro.NombreCompleto + " ***********"); if (arbitro.AniosExperiencia >= 6 && arbitro.NotaAFA >= 9 && arbitro.PoseeLicenciaInternacional == true) { Logger.Log.Info("Nivel 1. Condiciones: 6 años o más de experiencia, 9 o más en la nota del examen de AFA y posee licencia internacional FIFA"); Logger.Log.Info("Caracteristicas del árbitro:"); Logger.Log.Info("Años de experiencia: " + arbitro.AniosExperiencia); Logger.Log.Info("Nota del examen de AFA: " + arbitro.NotaAFA); Logger.Log.Info("¿Posee licencia internacional FIFA?: " + "Si"); Logger.Log.Info("********************************************************"); return(new BE.Nivel() { Id = 1, NombreNivel = "Nivel 1", Deporte = new BE.Deporte() { Id = 1 } }); } if (arbitro.AniosExperiencia >= 4 && arbitro.NotaAFA >= 8 && arbitro.PoseeLicenciaInternacional == true) { Logger.Log.Info("Nivel 2. Condiciones: 4 años o más de experiencia, 8 o más en la nota del examen de AFA y posee licencia internacional FIFA"); Logger.Log.Info("Caracteristicas del árbitro:"); Logger.Log.Info("Años de experiencia: " + arbitro.AniosExperiencia); Logger.Log.Info("Nota del examen de AFA: " + arbitro.NotaAFA); Logger.Log.Info("¿Posee licencia internacional FIFA?: " + "Si"); Logger.Log.Info("********************************************************"); return(new BE.Nivel() { Id = 2, NombreNivel = "Nivel 2", Deporte = new BE.Deporte() { Id = 1 } }); } if (arbitro.AniosExperiencia >= 2 && arbitro.NotaAFA >= 6) { Logger.Log.Info("Nivel 3. Condiciones: 2 años o más de experiencia y 6 o más en la nota del examen de AFA."); Logger.Log.Info("Caracteristicas del árbitro:"); Logger.Log.Info("Años de experiencia: " + arbitro.AniosExperiencia); Logger.Log.Info("Nota del examen de AFA: " + arbitro.NotaAFA); Logger.Log.Info("********************************************************"); return(new BE.Nivel() { Id = 3, NombreNivel = "Nivel 3", Deporte = new BE.Deporte() { Id = 1 } }); } if (arbitro.AniosExperiencia >= 1 && arbitro.NotaAFA >= 5) { Logger.Log.Info("Nivel 4. Condiciones: 1 año o más de experiencia y 5 o más en la nota del examen de AFA."); Logger.Log.Info("Caracteristicas del árbitro:"); Logger.Log.Info("Años de experiencia: " + arbitro.AniosExperiencia); Logger.Log.Info("Nota del examen de AFA: " + arbitro.NotaAFA); Logger.Log.Info("********************************************************"); return(new BE.Nivel() { Id = 4, NombreNivel = "Nivel 4", Deporte = new BE.Deporte() { Id = 1 } }); } Logger.Log.Info("Nivel 5. No cumple las condiciones para mayor nivel."); Logger.Log.Info("Caracteristicas del árbitro:"); Logger.Log.Info("Años de experiencia: " + arbitro.AniosExperiencia); Logger.Log.Info("Nota del examen de AFA: " + arbitro.NotaAFA); Logger.Log.Info("********************************************************"); return(new BE.Nivel() { Id = 5, NombreNivel = "Nivel 5", Deporte = new BE.Deporte() { Id = 1 } }); }