public static bool operator +(Competencia c, VehiculoDeCarrera v) { Random random = new Random(); bool returnAux = false, contiene = false; try { contiene = c == v; } catch (CompetenciaNoDisponibleException compEx) { var st = new StackTrace(); var sf = st.GetFrame(0); var currentMethodName = sf.GetMethod(); CompetenciaNoDisponibleException newEx = new CompetenciaNoDisponibleException( "Competencia incorrecta", c.GetType().ToString(), currentMethodName.ToString(), compEx); throw newEx; } if (c.competidores.Count < c.cantidadCompetidores) { c.competidores.Add(v); v.EnCompetencia = true; v.VueltasRestantes = c.cantidadVueltas; v.CantidadCombustible = (short)random.Next(15, 100); returnAux = true; } return(returnAux); }
public static bool operator ==(Competencia c, VehiculoDeCarrera v) { bool returnAux = false, contiene = false; foreach (VehiculoDeCarrera vehiculoDeCarrera in c.competidores) { if (vehiculoDeCarrera.Numero == v.Numero) { contiene = true; break; } } if (!contiene) { switch (c.Tipo) { case TipoCompetencia.F1: if (v is AutoF1) { returnAux = true; } break; case TipoCompetencia.MotoCross: if (v is MotoCross) { returnAux = true; } break; } } if (contiene && !returnAux) { var st = new StackTrace(); var sf = st.GetFrame(0); var currentMethodName = sf.GetMethod(); CompetenciaNoDisponibleException competenciaEx = new CompetenciaNoDisponibleException( "El vehículo no corresponde a la competencia", c.GetType().ToString(), currentMethodName.ToString()); throw competenciaEx; } return(returnAux); }