Example #1
0
    public static void LoadData()
    {
        BinaryFormatter formatter = new BinaryFormatter();

        if (Directory.Exists(pathEquipos))
        {
            #region Equipo
            //CARGAR EQUIPOS
            string[] equiposDirectories = Directory.GetDirectories(pathEquipos);

            for (int i = 0; i < equiposDirectories.Length; i++)
            {
                //PATH DE UN EQUIPO
                string pathEquipo = equiposDirectories[i];

                FileStream     equipoStream = new FileStream(pathEquipo + "/equipo.txt", FileMode.Open);
                SaveDataEquipo dataEquipo   = (SaveDataEquipo)formatter.Deserialize(equipoStream);

                //CREAR EL EQUIPO
                Equipo equipo = new Equipo(dataEquipo);

                equipoStream.Close();

                #region Jugadores
                //CARGAR JUGADORES
                string pathJugadores = pathEquipo + "/jugadores";

                if (Directory.Exists(pathJugadores))
                {
                    string[] jugadoresDirectories = Directory.GetDirectories(pathJugadores);

                    foreach (var jugadorDir in jugadoresDirectories)
                    {
                        FileStream      streamJugador = new FileStream(jugadorDir + "/jugador.txt", FileMode.Open);
                        SaveDataJugador dataJugador   = (SaveDataJugador)formatter.Deserialize(streamJugador);

                        Jugador jugador = new Jugador(dataJugador);

                        streamJugador.Close();

                        #region Estadisticas globales jugadores
                        //CARGAR ESTADISTICAS GLOBALES
                        if (File.Exists(jugadorDir + "/estGlobalPartido.txt"))
                        {
                            FileStream           estPartidoStream = new FileStream(jugadorDir + "/estGlobalPartido.txt", FileMode.Open);
                            SaveDataEstadisticas dataEstPartido   = (SaveDataEstadisticas)formatter.Deserialize(estPartidoStream);
                            jugador.CargarEstadisticasGlobalesPartido(new Estadisticas(dataEstPartido));
                            estPartidoStream.Close();
                        }
                        if (File.Exists(jugadorDir + "/estGlobalPractica.txt"))
                        {
                            FileStream           estPracticaStream = new FileStream(jugadorDir + "/estGlobalPractica.txt", FileMode.Open);
                            SaveDataEstadisticas dataEstPractica   = (SaveDataEstadisticas)formatter.Deserialize(estPracticaStream);
                            jugador.CargarEstadisticasGlobalesPractica(new Estadisticas(dataEstPractica));
                            estPracticaStream.Close();
                        }
                        #endregion

                        #region Partidos jugadores
                        //CARGAR PARTIDOS
                        if (Directory.Exists(jugadorDir + "/partidos"))
                        {
                            string pathPartidos = jugadorDir + "/partidos";

                            string[] partidosDirectories = Directory.GetDirectories(pathPartidos);

                            foreach (var partidoDir in partidosDirectories)
                            {
                                //string pathPartido = pathPartidos + partidoDir;

                                FileStream      streamPartido = new FileStream(partidoDir + "/partido.txt", FileMode.Open);
                                SaveDataPartido dataPartido   = (SaveDataPartido)formatter.Deserialize(streamPartido);

                                FileStream streamPosicion = new FileStream(partidoDir + "/posicion.txt", FileMode.Open);
                                string     dataPosicion   = (string)formatter.Deserialize(streamPosicion);

                                FileStream           streamEstadisticas = new FileStream(partidoDir + "/estadisticas.txt", FileMode.Open);
                                SaveDataEstadisticas dataEstadisticas   = (SaveDataEstadisticas)formatter.Deserialize(streamEstadisticas);

                                FileStream streamResultado = new FileStream(partidoDir + "/resultado.txt", FileMode.Open);

                                Partido _partido = new Partido(dataPartido, dataEstadisticas, jugador, dataPosicion);

                                if (equipo.GetDeporte() == Deportes.DeporteEnum.Tenis || equipo.GetDeporte() == Deportes.DeporteEnum.Padel || equipo.GetDeporte() == Deportes.DeporteEnum.Voley)
                                {
                                    SaveDataResultadoSets resPartidoSets = (SaveDataResultadoSets)formatter.Deserialize(streamResultado);
                                    ResultadoSets         _res           = new ResultadoSets(resPartidoSets);
                                    _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Sets);
                                }
                                else
                                {
                                    SaveDataResultadoNormal resPartidoNormal = (SaveDataResultadoNormal)formatter.Deserialize(streamResultado);
                                    ResultadoNormal         _res             = new ResultadoNormal(resPartidoNormal);
                                    _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Normal);
                                }

                                jugador.CargarPartido(_partido);

                                streamPartido.Close();
                                streamEstadisticas.Close();
                            }
                        }
                        #endregion

                        #region Practicas jugadores
                        //CARGAR PRACTICAS
                        if (Directory.Exists(jugadorDir + "/practicas"))
                        {
                            string pathPracticas = jugadorDir + "/practicas";

                            string[] practicasDirectories = Directory.GetDirectories(pathPracticas);

                            foreach (var practicaDir in practicasDirectories)
                            {
                                //string pathPractica = pathPracticas + practicaDir;

                                FileStream      streamPractica = new FileStream(practicaDir + "/partido.txt", FileMode.Open);
                                SaveDataPartido dataPractica   = (SaveDataPartido)formatter.Deserialize(streamPractica);

                                FileStream streamPosicion = new FileStream(practicaDir + "/posicion.txt", FileMode.Open);
                                string     dataPosicion   = (string)formatter.Deserialize(streamPosicion);
                                Debug.Log("POS LOAD: " + jugador.GetPosicionActual());

                                FileStream           streamEstadisticas = new FileStream(practicaDir + "/estadisticas.txt", FileMode.Open);
                                SaveDataEstadisticas dataEstadisticas   = (SaveDataEstadisticas)formatter.Deserialize(streamEstadisticas);

                                FileStream streamResultado = new FileStream(practicaDir + "/resultado.txt", FileMode.Open);

                                Partido _partido = new Partido(dataPractica, dataEstadisticas, jugador, dataPosicion);

                                if (equipo.GetDeporte() == Deportes.DeporteEnum.Tenis || equipo.GetDeporte() == Deportes.DeporteEnum.Padel || equipo.GetDeporte() == Deportes.DeporteEnum.Voley)
                                {
                                    SaveDataResultadoSets resPartidoSets = (SaveDataResultadoSets)formatter.Deserialize(streamResultado);
                                    ResultadoSets         _res           = new ResultadoSets(resPartidoSets);
                                    _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Sets);
                                }
                                else
                                {
                                    SaveDataResultadoNormal resPartidoNormal = (SaveDataResultadoNormal)formatter.Deserialize(streamResultado);
                                    ResultadoNormal         _res             = new ResultadoNormal(resPartidoNormal);
                                    _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Normal);
                                }

                                jugador.CargarPractica(_partido);

                                streamPractica.Close();
                                streamEstadisticas.Close();
                            }
                        }
                        #endregion
                        equipo.CargarJugador(jugador);
                    }
                }
                #endregion

                #region Jugador Favorito
                string favPlayerPath = pathEquipo + "/favouritePlayer.txt";
                if (File.Exists(favPlayerPath))
                {
                    FileStream streamFavPlayer = new FileStream(favPlayerPath, FileMode.Open);
                    string     jugadorFavorito = (string)formatter.Deserialize(streamFavPlayer);

                    equipo.SetJugadorFavorito(jugadorFavorito);
                }
                #endregion

                #region Estadisticas globales equipo
                //CARGAR ESTADISTICAS GLOBALES
                if (File.Exists(pathEquipo + "/estGlobalPartido.txt"))
                {
                    FileStream           estPartidoStream = new FileStream(pathEquipo + "/estGlobalPartido.txt", FileMode.Open);
                    SaveDataEstadisticas dataEstPartido   = (SaveDataEstadisticas)formatter.Deserialize(estPartidoStream);
                    Estadisticas         est = new Estadisticas(dataEstPartido);
                    equipo.CargarEstadisticasGlobalesPartido(est);
                    estPartidoStream.Close();
                }
                if (File.Exists(pathEquipo + "/estGlobalPractica.txt"))
                {
                    FileStream           estPracticaStream = new FileStream(pathEquipo + "/estGlobalPractica.txt", FileMode.Open);
                    SaveDataEstadisticas dataEstPractica   = (SaveDataEstadisticas)formatter.Deserialize(estPracticaStream);
                    equipo.CargarEstadisticasGlobalesPractica(new Estadisticas(dataEstPractica));
                    estPracticaStream.Close();
                }
                #endregion

                #region Partidos equipo
                //CARGAR PARTIDOS
                if (Directory.Exists(pathEquipo + "/partidos"))
                {
                    string pathPartidos = pathEquipo + "/partidos";

                    string[] partidosDirectories = Directory.GetDirectories(pathPartidos);

                    foreach (var partidoDir in partidosDirectories)
                    {
                        //string pathPartido = pathPartidos + partidoDir;

                        FileStream      streamPartido = new FileStream(partidoDir + "/partido.txt", FileMode.Open);
                        SaveDataPartido dataPartido   = (SaveDataPartido)formatter.Deserialize(streamPartido);

                        FileStream           streamEstadisticas = new FileStream(partidoDir + "/estadisticas.txt", FileMode.Open);
                        SaveDataEstadisticas dataEstadisticas   = (SaveDataEstadisticas)formatter.Deserialize(streamEstadisticas);

                        FileStream streamResultado = new FileStream(partidoDir + "/resultado.txt", FileMode.Open);

                        Partido _partido = new Partido(dataPartido, dataEstadisticas, equipo);

                        if (equipo.GetDeporte() == Deportes.DeporteEnum.Tenis || equipo.GetDeporte() == Deportes.DeporteEnum.Padel || equipo.GetDeporte() == Deportes.DeporteEnum.Voley)
                        {
                            SaveDataResultadoSets resPartidoSets = (SaveDataResultadoSets)formatter.Deserialize(streamResultado);
                            ResultadoSets         _res           = new ResultadoSets(resPartidoSets);
                            _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Sets);
                        }
                        else
                        {
                            SaveDataResultadoNormal resPartidoNormal = (SaveDataResultadoNormal)formatter.Deserialize(streamResultado);
                            ResultadoNormal         _res             = new ResultadoNormal(resPartidoNormal);
                            _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Normal);
                        }


                        equipo.CargarPartido(_partido);

                        streamPartido.Close();
                        streamEstadisticas.Close();
                    }
                }
                #endregion

                #region Practica equipo
                //CARGAR PRACTICAS
                if (Directory.Exists(pathEquipo + "/practicas"))
                {
                    string pathPracticas = pathEquipo + "/practicas";

                    string[] practicasDirectories = Directory.GetDirectories(pathPracticas);

                    foreach (var practicaDir in practicasDirectories)
                    {
                        //string pathPractica = pathPracticas + practicaDir;

                        FileStream      streamPractica = new FileStream(practicaDir + "/partido.txt", FileMode.Open);
                        SaveDataPartido dataPractica   = (SaveDataPartido)formatter.Deserialize(streamPractica);

                        FileStream           streamEstadisticas = new FileStream(practicaDir + "/estadisticas.txt", FileMode.Open);
                        SaveDataEstadisticas dataEstadisticas   = (SaveDataEstadisticas)formatter.Deserialize(streamEstadisticas);

                        FileStream streamResultado = new FileStream(practicaDir + "/resultado.txt", FileMode.Open);

                        Partido _partido = new Partido(dataPractica, dataEstadisticas, equipo);

                        if (equipo.GetDeporte() == Deportes.DeporteEnum.Tenis || equipo.GetDeporte() == Deportes.DeporteEnum.Padel || equipo.GetDeporte() == Deportes.DeporteEnum.Voley)
                        {
                            SaveDataResultadoSets resPartidoSets = (SaveDataResultadoSets)formatter.Deserialize(streamResultado);
                            ResultadoSets         _res           = new ResultadoSets(resPartidoSets);
                            _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Sets);
                        }
                        else
                        {
                            SaveDataResultadoNormal resPartidoNormal = (SaveDataResultadoNormal)formatter.Deserialize(streamResultado);
                            ResultadoNormal         _res             = new ResultadoNormal(resPartidoNormal);
                            _partido.AgregarResultadoEntradaDatos(_res, Partido.TipoResultadoPartido.Normal);
                        }

                        equipo.CargarPractica(_partido);

                        streamPractica.Close();
                        streamEstadisticas.Close();
                    }
                }
                #endregion
                #endregion



                #region Planillas
                //CARGAR PLANILLAS
                string pathPlanillas = pathEquipos + equipo.GetNombre() + "/planillas";

                if (Directory.Exists(pathPlanillas))
                {
                    string[] planillasDirectories = Directory.GetDirectories(pathPlanillas);            //Vector de Carpetas de Planillas

                    for (int j = 0; j < planillasDirectories.Length; j++)                               //Para cada carpeta de planillas
                    {
                        string pathPlanillaAsistencia = Directory.GetFiles(planillasDirectories[j])[0]; //Obtengo la dirección de la carpeta actual

                        FileStream streamPlanillaAsistencia = new FileStream(pathPlanillaAsistencia, FileMode.Open);
                        SaveDataPlanillaAsistencia dataPlanillaAsistencia = (SaveDataPlanillaAsistencia)formatter.Deserialize(streamPlanillaAsistencia);

                        equipo.AgregarPlanillaAsistencia(dataPlanillaAsistencia);

                        string[] detallesFiles = Directory.GetFiles(planillasDirectories[j] + "/Detalles"); //Vector de todos los detalles en la carpeta actual

                        for (int k = 0; k < detallesFiles.Length; k++)                                      //Para cada detalle
                        {
                            FileStream streamDetalles = new FileStream(detallesFiles[k], FileMode.Open);

                            SaveDataPlanilla dataDetalle = (SaveDataPlanilla)formatter.Deserialize(streamDetalles);

                            //Agregar la Planilla al Equipo
                            equipo.AgregarDetalle(new DetalleAsistencia(dataDetalle), dataDetalle.GetNombrePlanilla());

                            streamDetalles.Close();
                        }
                    }
                }
                #endregion

                //Agregar Equipo a la lista de Equipos
                AppController.instance.AgregarEquipo(equipo);
            }
        }

        #region Jugadas
        //Cargar imagenes
        if (Directory.Exists(pathImagenJugadas))
        {
            //Por cada imagen guardada creo un objeto imagen
            string[] pathsCarpeta = Directory.GetDirectories(pathImagenJugadas);

            for (int i = 0; i < pathsCarpeta.Length; i++)
            {
                string _nombreCarpeta = Path.GetFileName(pathsCarpeta[i]);
                if (_nombreCarpeta == "-")
                {
                    _nombreCarpeta = SaveSystem.carpetaEspecialEspañol;
                }

                CarpetaJugada _carpeta = new CarpetaJugada(_nombreCarpeta);

                string[] pathCarpetasJugadas = Directory.GetDirectories(pathsCarpeta[i]);

                for (int k = 0; k < pathCarpetasJugadas.Length; k++)
                {
                    string[] pathArchivos = Directory.GetFiles(pathCarpetasJugadas[k]);

                    byte[] bytes     = null;
                    string nombre    = string.Empty;
                    string categoria = string.Empty;

                    for (int j = 0; j < pathArchivos.Length; j++)
                    {
                        if (Path.GetExtension(pathArchivos[j]) == ".png")
                        {
                            nombre = Path.GetFileNameWithoutExtension(pathArchivos[j]);

                            bytes = File.ReadAllBytes(pathArchivos[j]);
                        }
                        else
                        {
                            FileStream streamCategoria = new FileStream(pathArchivos[j], FileMode.Open);
                            categoria = (string)formatter.Deserialize(streamCategoria);
                        }
                    }

                    ImagenBiblioteca _imagenBiblioteca = new ImagenBiblioteca(bytes, nombre, categoria, _carpeta);
                    //AppController.instance.AgregarImagen(_imagenBiblioteca);
                    _carpeta.AgregarJugada(_imagenBiblioteca);
                }
                AppController.instance.AgregarCarpetaJugada(_carpeta);
            }

            if (!Directory.Exists(pathImagenJugadas + "-"))
            {
                Directory.CreateDirectory(pathImagenJugadas + "-");
                AppController.instance.AgregarCarpetaJugada(new CarpetaJugada(SaveSystem.carpetaEspecialEspañol));
            }
        }
        else
        {
            Directory.CreateDirectory(pathImagenJugadas + "-");
            AppController.instance.AgregarCarpetaJugada(new CarpetaJugada(SaveSystem.carpetaEspecialEspañol));
        }
        #endregion

        #region Settings
        string settingsPath = Application.persistentDataPath + "/" + SaveSystem.carpetaPrincipal + "/settings.txt";
        if (File.Exists(settingsPath))
        {
            FileStream       streamSettings = new FileStream(settingsPath, FileMode.Open);
            SaveDataSettings dataSettings   = (SaveDataSettings)formatter.Deserialize(streamSettings);

            AppController.instance.SetSettings(dataSettings);
        }

        string equipoFavPath = Application.persistentDataPath + "/" + SaveSystem.carpetaPrincipal + "/favouriteTeam.txt";
        if (File.Exists(equipoFavPath))
        {
            FileStream streamFavTeam  = new FileStream(equipoFavPath, FileMode.Open);
            string     equipoFavorito = (string)formatter.Deserialize(streamFavTeam);

            AppController.instance.SetTeamAsFavourite(equipoFavorito);
        }
        #endregion
    }