Merge two serialized lists so that one depends on the other, C #

0

I have this problem with a program that I am doing, the goal is after having registered several cyclists in the program and have saved their data, register activities to these cyclists and that each activity belongs to a single cyclist and then be able to have the option to export the cyclist with his activities in an html file. I will leave the complete code of the menus, the case "1" of the aggregation of activities and the export in html is highlighted. Thanks

    public static void Main(){

        manejadorCiclistas mC = new manejadorCiclistas();
        manejadorActividades mA = new manejadorActividades();

        bool contiprograma = true;
        string seleccion = "";
        List<Ciclista> All = null;
        List<Actividad> todo = null;





        while(contiprograma)
        {

         Console.Clear();
         Console.WriteLine("Programa que guarda datos de Ciclistas. (Cantidad de Ciclistas "+mC.totalciclis()+")"+ "  (Cantidad de Actividades "+mA.totalactis()+")");
         Console.WriteLine();

         Console.WriteLine("1. Gestionar Ciclistas");
         Console.WriteLine("2. Gestionar Actividades");
         Console.WriteLine("3. Reportes");
         Console.WriteLine("4. Salir");
         Console.WriteLine();

         Console.Write("Seleccione la opcion deseada: ");
         seleccion = Console.ReadLine();

         switch(seleccion)
            {

             case "1": 

             bool contiprograma2 = true;

             while(contiprograma2)
                {

                  Console.Clear();
                  Console.WriteLine("Gestion de Ciclistas");
                  Console.WriteLine();
                  Console.WriteLine("1. Agregar Ciclistas");
                  Console.WriteLine("2. Modificar Ciclistas");
                  Console.WriteLine("3. Eliminar Ciclistas");
                  Console.WriteLine("4. Volver a Menu Principal ");
                  Console.WriteLine();

                  Console.Write("Seleccione la opcion deseada: ");
                  seleccion = Console.ReadLine();

                  switch(seleccion)
                    {
                        case "1": 


                          Ciclista cicli = new Ciclista();
                          Console.Clear();

                          Console.WriteLine("Agregar Nuevo Ciclista");
                          Console.WriteLine();

                          Console.Write("Ingrese la Cedula: ");
                          cicli.cedula = Console.ReadLine();
                          Console.Write("Ingrese el Nombre: ");
                          cicli.nombre = Console.ReadLine();
                          Console.Write("Ingrese el Apellido: ");
                          cicli.apellido = Console.ReadLine();
                          Console.Write("Ingrese su Dia de nacimiento: ");
                          int.TryParse(Console.ReadLine(), out cicli.dia);
                          Console.Write("Ingrese su Mes de nacimiento: ");
                          int.TryParse(Console.ReadLine(), out cicli.mes);
                          Console.Write("Ingrese su Anio de nacimiento: ");
                          cicli.anio = Console.ReadLine();
                          Console.Write("Ingrese el Tipo de Sangre: ");
                          cicli.tiposangre = Console.ReadLine();
                          Console.Write("Ingrese el Size de Bicicleta: ");
                          cicli.sizebici = Console.ReadLine();
                          Console.Write("Ingrese el Size de Uniforme: ");
                          cicli.sizeuniforme = Console.ReadLine();
                          Console.Write("Ingrese el Telefono: ");
                          cicli.telefono = Console.ReadLine();
                          Console.Write("Ingrese el Celular: ");
                          cicli.celular = Console.ReadLine();
                          Console.Write("Ingrese el Email: ");
                          cicli.email = Console.ReadLine();
                          Console.Write("Ingrese la Direccion: ");
                          cicli.direccion = Console.ReadLine();
                          Console.Write("Ingrese una Persona de Contacto: ");
                          cicli.percontacto = Console.ReadLine();
                          Console.Write("Ingrese el Telefono del Contacto: ");
                          cicli.telecontacto = Console.ReadLine();
                          mC.agregarCiclistas(cicli);
                          Console.Clear();


                        break;

                        case "2": 

                            if(mC.totalciclis() > 0)
                            {
                             Console.Clear();
                             Console.WriteLine("Ciclistas agregados");
                             All = mC.obtenerCiclistas(); 
                             Console.WriteLine();

                             int n1 = 1;
                             foreach(Ciclista ciclis in All){


                                 Console.WriteLine(n1+"-"+ciclis.nombre);
                                 n1++;

                                }
                                Console.WriteLine();

                                Console.Write("Ingrese el numero del ciclista que desea modificar: ");
                                int n = 0;
                                int.TryParse(Console.ReadLine(), out n);

                                if(n <= mC.totalciclis()){

                                    mC.borrarCiclistas(n-1);
                                    Console.WriteLine();
                                    Ciclista ciclit = new Ciclista();
                                    Console.Clear();

                                    Console.WriteLine("Introducir nuevos datos de Ciclista");
                                    Console.WriteLine();

                                    Console.Write("Ingrese la Cedula: ");
                                    ciclit.cedula = Console.ReadLine();
                                    Console.Write("Ingrese el Nombre: ");
                                    ciclit.nombre = Console.ReadLine();
                                    Console.Write("Ingrese el Apellido: ");
                                    ciclit.apellido = Console.ReadLine();
                                    Console.Write("Ingrese su Dia de nacimiento: ");
                                    int.TryParse(Console.ReadLine(), out ciclit.dia);
                                    Console.Write("Ingrese su Mes de nacimiento: ");
                                    int.TryParse(Console.ReadLine(), out ciclit.mes);
                                    Console.Write("Ingrese su Anio de nacimiento: ");
                                    ciclit.anio = Console.ReadLine();
                                    Console.Write("Ingrese el Tipo de Sangre: ");
                                    ciclit.tiposangre = Console.ReadLine();
                                    Console.Write("Ingrese el Size de Bicicleta: ");
                                    ciclit.sizebici = Console.ReadLine();
                                    Console.Write("Ingrese el Size de Uniforme: ");
                                    ciclit.sizeuniforme = Console.ReadLine();
                                    Console.Write("Ingrese el Telefono: ");
                                    ciclit.telefono = Console.ReadLine();
                                    Console.Write("Ingrese el Celular: ");
                                    ciclit.celular = Console.ReadLine();
                                    Console.Write("Ingrese el Email: ");
                                    ciclit.email = Console.ReadLine();
                                    Console.Write("Ingrese la Direccion: ");
                                    ciclit.direccion = Console.ReadLine();
                                    Console.Write("Ingrese una Persona de Contacto: ");
                                    ciclit.percontacto = Console.ReadLine();
                                    Console.Write("Ingrese el Telefono del Contacto: ");
                                    ciclit.telecontacto = Console.ReadLine();
                                    mC.agregarCiclistas(ciclit);
                                    Console.Clear();


                                }else{
                                    Console.WriteLine();
                                    Console.Write("No existe el ciclista numero "+n);
                                    Console.ReadKey();
                                }

                            }else{
                                Console.WriteLine();
                                Console.Write("Necesita agregar almenos un Ciclista");
                                Console.ReadKey();
                                }



                        break;

                        case "3": 

                        if(mC.totalciclis() > 0)
                        {
                         Console.Clear();
                         Console.WriteLine("Ciclistas agregados");
                         All = mC.obtenerCiclistas(); 
                         Console.WriteLine();

                         int n1 = 1;
                         foreach(Ciclista ciclis in All){


                             Console.WriteLine(n1+"-"+ciclis.nombre);
                             n1++;

                            }
                            Console.WriteLine();

                            Console.Write("Ingrese el numero del ciclista que desea eliminar: ");
                            int n = 0;
                            int.TryParse(Console.ReadLine(), out n);

                            if(n <= mC.totalciclis()){
                              mC.borrarCiclistas(n-1);
                              Console.WriteLine();
                              Console.WriteLine("Ciclista Eliminado");
                              Console.ReadKey();

                            }else{
                                Console.WriteLine();
                                Console.Write("No existe el ciclista numero "+n);
                                Console.ReadKey();
                            }

                        }else{
                            Console.WriteLine();
                            Console.Write("Necesita agregar almenos un Ciclista");
                            Console.ReadKey();
                            }


                        break;

                        case "4": 

                           Console.WriteLine();

                           FileStream streamout = new FileStream("DatosCicli.dat", FileMode.Create);
                           BinaryFormatter formaterout = new BinaryFormatter();
                           formaterout.Serialize(streamout, mC);
                           streamout.Close();

                           Console.Clear();
                           contiprograma2 = false;

                        break;

                       default: 

                          Console.WriteLine();
                          Console.WriteLine(seleccion + " No es una opcion de seleccion");
                          Console.ReadKey();

                        break;


                    }




                }

             break;

             case "2": 

                  bool contiprograma3 = true;

                  while(contiprograma3){

                      Console.Clear();
                      Console.WriteLine("Gestion de Actividades");
                      Console.WriteLine();
                      Console.WriteLine("1. Agregar Actividad");
                      Console.WriteLine("2. Volver a Menu Principal ");
                      Console.WriteLine();

                      Console.Write("Seleccione la opcion deseada: ");
                      seleccion = Console.ReadLine();

                      switch(seleccion){




case "1": 

                               Console.Clear();
                               Console.WriteLine("Ciclistas agregados");
                               All = mC.obtenerCiclistas(); 
                               Console.WriteLine();

                               int n1 = 1;
                               foreach(Ciclista ciclis in All){


                                   Console.WriteLine(n1+"-"+ciclis.nombre);
                                   n1++;

                                }
                                Console.WriteLine();

                                Console.Write("Ingrese el numero del ciclista que desea agregar actividad: ");
                                int n = 0;
                                int.TryParse(Console.ReadLine(), out n);

                                    Actividad acti = new Actividad();
                                    Ciclista cicli = new Ciclista();

                                    All = mC.obtenerCiclistas(); 
                                    Console.Clear();
                                    Console.Write("Ingrese el Nombre del Ciclista: ");
                                    acti.ciclista = Console.ReadLine();
                                    Console.Write("Ingrese la Fecha de Actividad: ");
                                    acti.fechaact = Console.ReadLine();
                                    Console.Write("Ingrese la Distancia: ");
                                    acti.distancia = Console.ReadLine();
                                    Console.Write("Ingrese el Lugar de la Activiad: ");
                                    acti.lugar = Console.ReadLine();
                                    Console.Write("Ingrese la Dificultad de la Actividad: ");
                                    acti.dificultad = Console.ReadLine();
                                    mA.agregarActividades(acti);
                                    Console.Clear();






                          break; 
**This is bold**

                          case "2": 

                           Console.WriteLine();
                           FileStream streamout = new FileStream("DatosACT.dat", FileMode.Create);
                           BinaryFormatter formaterout = new BinaryFormatter();
                           formaterout.Serialize(streamout, mA);
                           streamout.Close();

                           Console.Clear();
                           contiprograma3 = false;

                          break;

                          default: 

                              Console.WriteLine();
                              Console.WriteLine(seleccion + " No es una opcion de seleccion");
                              Console.ReadKey();

                           break;


                        }


                    }

             break;

             case"3": 

             bool contiprograma4 = true;

             while(contiprograma4){

                    Console.Clear();
                    Console.WriteLine("Gestion de Reportes");
                    Console.WriteLine();
                    Console.WriteLine("1. Listado de Ciclistas");
                    Console.WriteLine("2. Listado de Actividades");
                    Console.WriteLine("3. Listado de Ciclistas con Signo Zodiacal");
                    Console.WriteLine("4. Exportar Ciclista");
                    Console.WriteLine("5. Volver al Menu Principal");
                    Console.WriteLine();

                    Console.Write("Seleccione la opcion deseada: ");
                    seleccion = Console.ReadLine();

                    switch(seleccion){

                        case "1": 

                         Console.Clear();
                         Console.WriteLine("Lista de Ciclistas");
                         All = mC.obtenerCiclistas(); 
                         Console.WriteLine();

                         int n1 = 1;
                         foreach(Ciclista ciclis in All){


                             Console.WriteLine(n1+"-"+ciclis.nombre);
                             n1++;

                            }
                            Console.ReadKey();


                        break;

                        case "2":

                         Console.Clear();
                         Console.WriteLine("Lista de Actividades");
                         todo = mA.obtenerActividades(); 
                         Console.WriteLine();

                          n1 = 1;
                         foreach(Actividad actis in todo){


                             Console.WriteLine(n1+"-"+actis.lugar);
                             n1++;

                            }
                            Console.ReadKey();




                        break;

                        case "3": 

                        Console.Clear();
                        Console.WriteLine("Signos Zodiacales de los Ciclistas");
                        Console.WriteLine();
                        All = mC.obtenerCiclistas();



                        for(int z = 0; z < All.Count; z++ ){

                            switch(All[z].mes){

                              case 1:
                              if(All[z].dia >= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Acuario");
                              else 
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Capricornio");
                              break;

                              case 2:
                              if(All[z].dia <= 18)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Acuario");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Piscis");
                              break;

                              case 3:
                              if(All[z].dia <= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Piscis");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Aries");
                              break;

                              case 4:
                              if(All[z].dia <= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Aries");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Tauro");
                              break;

                              case 5:
                              if(All[z].dia <= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Tauro");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Geminis");
                              break;

                              case 6:
                              if(All[z].dia <= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Geminis");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Cancer");
                              break;

                              case 7:
                              if(All[z].dia <= 21)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Cancer");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Leo");
                              break;

                              case 8: 
                              if(All[z].dia <= 21)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Leo");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Virgo");
                              break;

                              case 9:
                              if(All[z].dia <= 22)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Vrigo");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Libra");
                              break;

                              case 10: 
                              if(All[z].dia <= 22)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Libra");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Escorpio");
                              break;

                              case 11:
                              if(All[z].dia <= 22)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Escorpio");
                              else 
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Sagitario");
                              break;

                              case 12:  
                              if(All[z].dia <= 20)
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Sagitario");
                              else
                                Console.Write("El signo Zodiacal de "+All[z].nombre+" es Capricornio");
                              break;

                            }
                            Console.WriteLine();
                            Console.WriteLine();

                        }

                        Console.ReadKey();




                        break;
                        **This is bold**
                        case "4": 

                          string carpeta = "C:\FELIZ";
                          if (Directory.Exists(carpeta) == false){
                            Directory.CreateDirectory(carpeta);

                          }


                         Console.Clear();
                         Console.WriteLine("Exportar Ciclistas");
                         All = mC.obtenerCiclistas();
                         todo = mA.obtenerActividades();


                         Console.WriteLine();

                          n1 = 1;
                         foreach(Ciclista ciclis in All){


                             Console.WriteLine(n1+"-"+ciclis.nombre);
                             n1++;

                            }
                            Console.WriteLine();

                            Console.Write("Ingrese el numero del ciclista que desea Exportar: ");
                            int n = 0;
                            int.TryParse(Console.ReadLine(), out n);

                            n1 = 1;

                             if(n <= mC.totalciclis()){
                                  for(int x = 0; x < All.Count; x++){
                                     string informacion = "<html>"+
                                     "<head>"+
                                     "</head>"+
                                     "<body style>"+
                                     "<table border='1'><tr><th>Cedula</th><td>"+All[x].cedula+
                                     "</td></tr><tr><th>Nombre</th><td>"+All[x].nombre+
                                     "</td></tr><tr><th>Apellido</th><td>"+All[x].apellido+
                                     "</td></tr><tr><th>FechaNacimiento</th><td>"+All[x].dia+All[x].mes+All[x].anio+
                                     "</td></tr><tr><th>TipoSangre</th><td>"+All[x].tiposangre+
                                     "</td></tr><tr><th>SizeBicicleta</th><td>"+All[x].sizebici+
                                     "</td></tr><tr><th>SizeUniforme</th><td>"+All[x].sizeuniforme+
                                     "</td></tr><tr><th>Telefono</th><td>"+All[x].telefono+
                                     "</td></tr><tr><th>Celular</th><td>"+All[x].celular+
                                     "</td></tr><tr><th>Email</th><td>"+All[x].email+
                                     "</td></tr><tr><th>Direccion</th><td>"+All[x].direccion+
                                     "</td></tr><tr><th>PersonaContacto</th><td>"+All[x].percontacto+
                                     "</td></tr><tr><th>TelefonoContacto</th><td>"+All[x].telecontacto+
                                     "</td></tr><tr><th>Ciclista</th><td>"+todo[x].ciclista+
                                     "</td></tr><tr><th>FechaActividad</th><td>"+todo[x].fechaact+
                                     "</td></tr><tr><th>DistanciaActividad</th><td>"+todo[x].distancia+
                                     "</td></tr><tr><th>LugarActividad</th><td>"+todo[x].lugar+
                                     "</td></tr><tr><th>DificultadActividad</th><td>"+todo[x].dificultad+
                                     "</td></tr></table></body>";

                                      File.WriteAllText("c:\FELIZ\"+All[x].cedula+".html", informacion);
                                    }

                                }else{
                                 Console.WriteLine();
                                 Console.Write("No existe el ciclista numero "+n);
                                 Console.ReadKey();
                                }





                        break;


                        case "5": 

                        Console.Clear();
                        contiprograma4 = false;

                        break;


                        default: 

                          Console.WriteLine();
                          Console.WriteLine(seleccion + " No es una opcion de seleccion");
                          Console.ReadKey();

                        break;



                    }



                }

             break;

             case "4": 

                 Console.WriteLine();
                 Console.Write("Vuelva pronto");
                 Console.ReadKey();
                 contiprograma = false;

             break;

             default: 

                   Console.WriteLine();
                   Console.WriteLine(seleccion + " No es una opcion de seleccion");
                   Console.ReadKey();



             break;





            }



        }



    }
}

Here is the code of the data of the cyclists and activities that are instantiated in the main one.

[Serializable]
public class Ciclista{

    public string cedula;
    public string nombre;
    public string apellido;
    public int dia;
    public int mes;
    public string anio;
    public string tiposangre;
    public string sizebici;
    public string sizeuniforme;
    public string telefono;
    public string celular;
    public string email;
    public string direccion;
    public string percontacto;
    public string telecontacto;

}

[Serializable]
public class manejadorCiclistas{

    private List<Ciclista> All = new List<Ciclista>();

    public void agregarCiclistas(Ciclista cicli){
        All.Add(cicli);

    }

    public int totalciclis(){
        return All.Count;

    }


    public void borrarCiclistas(int n1){
        All.RemoveAt(n1);

    }

    public List<Ciclista> obtenerCiclistas(){

        return All;
    }
}

[Serializable]
public class Actividad{

    public string ciclista;
    public string fechaact;
    public string distancia;
    public string lugar;
    public string dificultad;
}

[Serializable]
public class manejadorActividades{

    private List<Actividad> todo = new List<Actividad>();

    public void agregarActividades(Actividad acti){
        todo.Add(acti);

    }

    public int totalactis(){
        return todo.Count;

    }

    public List<Actividad> obtenerActividades(){

        return todo;
    }
}
    
asked by Brandon 02.04.2018 в 22:44
source

0 answers