コード例 #1
0
        static void Main(string[] args)
        {
            Centralita MiCentral = new Centralita("Telefonica");

            MiCentral.RutaDeArchivo = "Centralita.txt";
            Local      Llamada1 = new Local("42409124", 30, "20705020", 2.65f);
            Provincial Llamada2 = new Provincial("42407151", Franja.Franja_1, 21, "42471562");
            Local      Llamada3 = new Local("41354235", 45, "87625412", 1.99f);
            Provincial Llamada4 = new Provincial(Franja.Franja_3, Llamada2);

            //MiCentral = MiCentral + Llamada1;
            try
            {
                MiCentral = MiCentral + Llamada1;
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            try
            {
                MiCentral = MiCentral + Llamada2;
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            try
            {
                MiCentral = MiCentral + Llamada3;
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            try
            {
                MiCentral = MiCentral + Llamada4;
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            //Console.WriteLine(MiCentral.ToString());
            Console.ReadKey();

            MiCentral.RutaDeArchivo = "Centralita.XML";
            try
            {
                MiCentral.Serializarse();
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            Centralita OtraCentral = new Centralita();

            OtraCentral.RutaDeArchivo = "Centralita.XML";
            try
            {
                OtraCentral.Deserializarse();
            }
            catch (CentralitaException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.NombreClase);
                Console.WriteLine(e.NombreMetodo);
            }
            Console.WriteLine(OtraCentral.ToString());
            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            #region Creacion de Central y Llamadas
            Centralita Telefonica = new Centralita("Telefonica");

            Local      llamadaLocaluno      = new Local("4445-3333", "123-123", 0.30F, 2.65F);
            Provincial llamadaProvincialuno = new Provincial("5555-5555", Franja.Franja_1, 0.21F, "0800-333-8100");

            Local      llamadaLocaldos      = new Local("1313-3131", "5677-2311", 0.45F, 1.99F);
            Provincial llamadaProvincialdos = new Provincial(Franja.Franja_3, llamadaProvincialuno);

            #endregion

            #region Agregar Llamadas y Metodos

            #region Metodos del ejercicio solo Herencia
            //Telefonica.Llamadas.Add(llamadaLocaluno);
            //Telefonica.Llamadas.Add(llamadaProvincialdos);
            //Telefonica.Llamadas.Add(llamadaLocaldos);
            //Telefonica.Llamadas.Add(llamadaProvincialdos);

            //Console.WriteLine("MUESTRO SIN ORDENAR: ");
            //Telefonica.Mostrar();
            //Console.ReadKey();
            //Telefonica.OrdenarLlamadas();
            //Console.Clear();
            //Console.WriteLine("\nAHORA ORDENADO: ");
            //Telefonica.Mostrar();
            //Console.ReadKey();
            #endregion

            #region Agregado con Serializacion 1

            Telefonica.RutaDeArchivo = @"F:\Facultad\Programacion II (C#) 2016\+++Solucion General+++\Ejercicios Guia anteriores\CentralitaCompleto\CentralitaTelefonica\Centralita.xml";
            Console.WriteLine("\nSe deserializo?: ");
            Console.WriteLine(Telefonica.DesSerizarse().ToString());

            #endregion
            #region  Metodos del ejercicio Polimorfismo y tambien usado por Serializacion
            Telefonica = Telefonica + llamadaLocaluno;
            Telefonica = Telefonica + llamadaProvincialuno;
            Telefonica = Telefonica + llamadaLocaldos;
            Telefonica = Telefonica + llamadaProvincialuno;


            Console.WriteLine("\nLLAMADAS SIN ORDENAR: ");
            Console.WriteLine(Telefonica.ToString());
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\nLLAMADAS ORDENADAS: ");
            Telefonica.OrdenarLlamadas();
            Console.WriteLine(Telefonica.ToString());
            Console.ReadKey();

            #endregion
            #region Agregado con Serializacion 2
            Console.Clear();
            Console.WriteLine("\nSe serializo?: ");
            Console.WriteLine(Telefonica.Serializarse().ToString());

            Console.WriteLine("\nSe guarda en el txt la llamada local uno?: ");
            Console.WriteLine(Telefonica.GuardarEnArchivo(llamadaLocaluno, true).ToString());

            #endregion


            #endregion
        }
コード例 #3
0
        public bool DesSerizarse()
        {
            #region Lo que me pide
            //Retornará true, si es que se pudo
            //deserializar del archivo .XML al objeto actual, del path
            //indicado por el atributo privado _ruta. En el caso de no
            //poder deserializarlo (debido a una excepción) se deberá
            //lanzar una excepción de tipo CentralitaException,
            //indicándole:
            //o Mensaje de error.
            //o Nombre de la clase que provocó la excepción.
            //o Nombre del método que provoco la excepción.
            //o El objeto de tipo Exception.
            #endregion

            #region NOTAS IMPORTANTES DESSERIALIZACION
            /*
             * ******TRY******
             * En este punto, creamos un try en donde debo colocar lo que quiero que suceda si es exitoso. 
             * Creamos un XMLTEXTREADER pasandole SOLO la ruta del archivo la cual ya tenemos un atributo con ese dato disponible.
             * Creamos un XMLSERIALIZER pasandole el tipo que queremos serializar.
             * IMPORTANTE --> En este caso solo coloque para desseralizar la lista, para deserealizar cada uno se debería poner todos los typeof 
             * de la siguiente manera --> (typeof(List<Llamada>)), new Type[] { typeof(Centralita), typeof(Provincial), typeof(Local) }
             * Creamos una centralita para guardar la informacion que se deserializó.
             * Lo deserializamos usando "xmlS.Deseralize" y le pasamos el XMLTEXTREADER (ej: xmlR) y lo asignamos a la centralita creada de auxiliar.
             * Debemos cerrar el XMLTEXTREADER utilizando en el ej: xmlR.Close(), y devolvemos el TRUE que devuelve la funcion.
             * 
             * ******CATCH******
             En el bloque catch, debemos crear la primera excepcion de todo--> Exception e (RECORDAR, ES LA EXCEPCION GENERICA)
             * Dentro del catch, creamos otro bloque try/catch
             *              SEGUNDO TRY
             *              Mostramos por consola lo que pide el ejercicio, en este caso un InnerException desde el obj Exception e que habiamos creado
             *              Luego lanzamos la nueva exepcion que nos pide, creamos una nueva a partir de la clase CentralitaException.
             *              Le pasamos Dentro de este, utilizando el obj e, e.Message, e.Source, e.TargetSite.Tostring(), e.InnerException.
             *              Estos son los valores que necesita el constructor de CentralitaException (mensaje, clase, metodo e innerException)
             *              Le estamos mandando los errores que se generan a la CentralitaExeption
             *              SEGUNDO CATCH
             *              Generamos una CentralitaException f y dentro mostramos con el ConsoleWriteLine concatenando. llamando a las propiedades de 
             *              CentralitaException que habiamos guardado en el try anterior. EJ: f.Mensaje+f.NombreClase+f.Metodo+f.InnerException
             * Cerramos el segundo bloque try/catch y retornamos el FALSE.
             */


            #endregion

            try
            {

                XmlTextReader xmlR = new XmlTextReader(this.RutaDeArchivo);
                XmlSerializer xmlS = new XmlSerializer((typeof(List<Llamada>)));

                Centralita auxiliar = new Centralita();
                auxiliar=(Centralita)xmlS.Deserialize(xmlR);
                xmlR.Close();
                return true;
            }
            catch (Exception e)
            {
                try
                {
                    Console.WriteLine(e.InnerException);
                    throw new CentralitaException(e.Message, e.Source, e.TargetSite.ToString(), e.InnerException);
                }
                catch (CentralitaException f)
                {
                    Console.WriteLine(f.Mensaje + f.NombreClase + f.NombreMetodo + f.InnerException);


                }
                return false;

            }


        }
コード例 #4
0
        static void Main(string[] args)
        {
            Centralita miCentralita = new Centralita("Telefonica");

            //miCentralita.DeSerializarse();
            miCentralita.RutaDeArchivo = "Centralita.xml";

            Local      LlamadaUno    = new Local("Juan Martin", 0.3F, "Mama", 2.65F);
            Provincial LlamadaDos    = new Provincial("Martin", Franja.Franja_1, 0.21F, "Abuela");
            Local      LlamadaTres   = new Local("Carlos", 0.45F, "Ezequiel", 1.99F);
            Provincial LlamadaCuatro = new Provincial(Franja.Franja_3, LlamadaDos);

            bool flag = false;

            try
            {
                miCentralita += LlamadaUno;
                miCentralita += LlamadaDos;
                miCentralita += LlamadaTres;
                miCentralita += LlamadaCuatro;
            }
            catch (CentralitaException x)
            {
                Console.WriteLine(x.NombreClase);
                Console.WriteLine(x.NombreMetodo);
                Console.WriteLine(x.Message);
                if (x.InnerException != null)
                {
                    Console.WriteLine("Inner exception: " + x.InnerException);
                }
            }

            Console.WriteLine(LlamadaUno.ToString());
            Console.WriteLine(LlamadaDos.ToString());
            Console.WriteLine(LlamadaTres.ToString());
            Console.WriteLine(LlamadaCuatro.ToString());

            Console.ReadLine();

            Console.Clear();

            miCentralita.ordenarLlamadas();

            Console.WriteLine("CENTRALITA ORDENADA");

            Console.WriteLine(miCentralita.ToString());

            Console.ReadLine();

            try
            {
                miCentralita.Serializarse();
            }
            catch (CentralitaException x)
            {
                Console.WriteLine(x.Message);
                Console.WriteLine(x.NombreClase);
                Console.WriteLine(x.NombreMetodo);

                if (x.ExcepcionInterna != null)
                {
                    Console.WriteLine(x.ExcepcionInterna);
                }
            }

            try
            {
                flag = miCentralita.DeSerializarse();

                if (flag == true)
                {
                    Console.WriteLine("Centralita deserializada");
                }
                else
                {
                    Console.WriteLine("Centralita no deserializada");
                }
            }
            catch (CentralitaException x)
            {
                Console.WriteLine(x.Message);
                Console.WriteLine(x.NombreClase);
                Console.WriteLine(x.NombreMetodo);

                if (x.ExcepcionInterna != null)
                {
                    Console.WriteLine(x.ExcepcionInterna);
                }
            }

            Console.ReadLine();
        }