Example #1
0
        public void ReadXml(System.Xml.XmlReader reader)
        {
            reader.ReadToFollowing("origen");
            if (reader.HasAttributes)
            {
                XMLOrigen = new XMLEstado()
                {
                    Estado = Convert.ToInt32(reader.GetAttribute("ref"))
                };
            }

            reader.ReadToFollowing("destino");
            if (reader.HasAttributes)
            {
                XMLDestino = new XMLEstado()
                {
                    Estado = Convert.ToInt32(reader.GetAttribute("ref"))
                };
            }

            reader.ReadToFollowing("Descripcion");

            Descripcion = reader.ReadElementString("Descripcion");

            EsAutomatica = Convert.ToBoolean(reader.ReadElementString("EsAutomatica"));

            FechaTransicion = Convert.ToDateTime(reader.ReadElementString("FechaTransicion"));

            reader.ReadEndElement();
        }
Example #2
0
        public static XMLFlujograma Transformar(IFlujograma flujograma)
        {
            XMLFlujograma sol = null;

            if (flujograma is XMLFlujograma)
            {
                sol = flujograma as XMLFlujograma;
            }
            else
            {
                sol         = new XMLFlujograma();
                sol.Entidad = flujograma.Entidad;

                XMLEstado[] estados = new XMLEstado[flujograma.Estados.Length];
                for (int i = 0; i < estados.Length; i++)
                {
                    estados[i] = XMLEstado.Tranformar(flujograma.Estados[i]);
                }
                sol.XMLEstados = estados;
                sol.IdEntidad  = flujograma.IdEntidad;
                sol.Nombre     = flujograma.Nombre;
                XMLTransicion[] transiciones = new XMLTransicion[flujograma.Transiciones.Length];
                for (int i = 0; i < transiciones.Length; i++)
                {
                    transiciones[i] = XMLTransicion.Transformar(flujograma.Transiciones[i]);
                }
                sol.XMLTransiciones = transiciones;
            }

            return(sol);
        }
Example #3
0
        public void ReadXml(System.Xml.XmlReader reader)
        {
            //Lista ordenada que nos ayudará a resolver las referencias de tipo id
            SortedList <int, XMLEstado> estados = new SortedList <int, XMLEstado>();

            reader.ReadToFollowing("Nombre");
            Nombre    = reader.ReadElementString("Nombre");
            IdEntidad = Convert.ToInt32(reader.ReadElementString("IdEntidad"));
            Entidad   = reader.ReadElementString("Entidad");

            if (reader.Name.Equals("XMLEstados"))
            {
                reader.Read();
                do
                {
                    XmlSerializer serializer = new XmlSerializer(xmlEstadoType);


                    XMLEstado item = serializer.Deserialize(reader) as XMLEstado;

                    item.Flujograma = this;

                    estados.Add(item.Estado, item);
                } while (reader.Name.Equals(xmlEstadoType.Name));

                XMLEstados = estados.Values.ToArray();

                reader.Read();
            }

            if (reader.Name.Equals("XMLTransiciones"))
            {
                List <XMLTransicion> est = new List <XMLTransicion>();

                reader.Read();
                do
                {
                    XmlSerializer serializer = new XmlSerializer(xmlTransicionType);


                    XMLTransicion trans = (XMLTransicion)serializer.Deserialize(reader);

                    trans.Origen     = estados[trans.Origen.Estado];
                    trans.Destino    = estados[trans.Destino.Estado];
                    trans.Flujograma = this;

                    est.Add(trans);
                } while (reader.Name.Equals(xmlTransicionType.Name));

                XMLTransiciones = est.ToArray();

                reader.Read();
            }

            reader.ReadEndElement();
        }
Example #4
0
 public void Add(IEstado estado)
 {
     foreach (var item in _estados)
     {
         if (item.Estado == estado.Estado)
         {
             throw new ClaveDuplicadaException();
         }
     }
     _estados.Add(XMLEstado.Tranformar(estado));
 }
Example #5
0
        public void Add(ITransicion transicion)
        {
            if (!transicion.Flujograma.Equals(this))
            {
                throw new NoMismoFlujogramaException();
            }

            if (!_estados.Contains(XMLEstado.Tranformar(transicion.Origen)) ||
                !_estados.Contains(XMLEstado.Tranformar(transicion.Destino)))
            {
                throw new NoSuchElementException();
            }

            XMLTransicion tr = XMLTransicion.Transformar(transicion);

            if (!_transiciones.Contains(tr))
            {
                _transiciones.Add(tr);
            }
        }