Exemple #1
0
        public static List <Suceso> GetHistorialSuceso(int planillaId, int deportePeriodoId, int competidorId)
        {
            List <Suceso>       lsu = new List <Suceso>();
            List <SqlParameter> lp  = new List <SqlParameter>();

            lp.Add(new SqlParameter("PlanillaId", planillaId));
            lp.Add(new SqlParameter("DeportePeriodoId", deportePeriodoId));
            lp.Add(new SqlParameter("CompetidorId", competidorId));

            DBTransaction db = new DBTransaction();

            DataTable dt         = db.GetStoreProcedure("conj.pHistorialSuceso", lp);
            int       FindIndice = -1;

            foreach (DataRow dr in dt.Rows)
            {
                Suceso sc = ConvertToSucesos(dr);
                sc.Competidor = Competidor.ConvertToCompetidor(dr);

                sc.Competidor.Equipo = Equipo.ConvertToEquipo(dr);
                sc.ParametrosSuceso  = ParametrosSuceso.ConvertToParametroSuceso(dr);
                sc.SucesoPersonas    = new List <SucesoPersona>();

                if (sc.ParametrosSuceso.RegistraPersona >= 1 && !string.IsNullOrEmpty(dr["PlanillaPersonaId"].ToString()))
                {
                    SucesoPersona scp = SucesoPersona.ConvertToSucesoPersona(dr);
                    scp.PlanillaPersona = PlanillaPersona.ConvertPlanillaPersona(dr, true);

                    FindIndice = lsu.FindIndex(delegate(Suceso s) { return(s.SucesoId == sc.SucesoId); });
                    if (FindIndice > 0)
                    {
                        lsu.ElementAt(FindIndice).SucesoPersonas.Add(scp);
                    }
                    else
                    {
                        sc.SucesoPersonas.Add(scp);
                        FindIndice = -1;
                    }
                }
                else
                {
                    FindIndice = -1;
                }
                if (FindIndice < 0)
                {
                    lsu.Add(sc);
                }
            }
            return(lsu);
        }