コード例 #1
0
        private static Estaciones LlenarEstacion(EstacionModelo estacion, byte[] bitmapData, bool generarNuevosIds)
        {
            Estaciones estacionBD = new Estaciones();
            if (generarNuevosIds)
                estacionBD.Id = Guid.NewGuid();
            else
                estacionBD.Id = estacion.Id;

            estacionBD.Nombre = estacion.Nombre;
            estacionBD.Descripcion = estacion.Descripcion;
            estacionBD.Foto = new System.Data.Linq.Binary(bitmapData);
            estacionBD.Fecha = DateTime.Now;
            Dictionary<Guid, Guid> puertosMappingAntiguoNuevo = new Dictionary<Guid, Guid>();
            foreach (KeyValuePair<Guid, ComputadorLogico> pc in estacion.Computadores)
            {
                Equipos equipoBD = AgregarEquipo(estacionBD, pc.Value, generarNuevosIds);
                Computadores pcBD = new Computadores();

                pcBD.Id = equipoBD.Id;
                pcBD.DefaultGateWay = pc.Value.DefaultGateWay;
                equipoBD.Computadores = pcBD;
                pcBD.Equipos = equipoBD;
                Guid idPuerto = AgregarPuerto(equipoBD, pc.Value.PuertoEthernet, generarNuevosIds);
                puertosMappingAntiguoNuevo.Add(pc.Value.PuertoEthernet.Id, idPuerto);
            }
            foreach (KeyValuePair<Guid, HUBLogico> hub in estacion.HUBS)
            {
                Equipos equipoBD = AgregarEquipo(estacionBD, hub.Value, generarNuevosIds);

                foreach (PuertoEthernetLogicoBase puerto in hub.Value.PuertosEthernet)
                {
                    Guid idPuerto = AgregarPuerto(equipoBD, puerto, generarNuevosIds);
                    puertosMappingAntiguoNuevo.Add(puerto.Id, idPuerto);
                }

            }
            foreach (KeyValuePair<Guid, SwitchLogico> swi in estacion.Switches)
            {
                Equipos equipoBD = AgregarEquipo(estacionBD, swi.Value, generarNuevosIds);

                foreach (PuertoEthernetLogicoBase puerto in swi.Value.PuertosEthernet)
                {
                    Guid idPuerto = AgregarPuerto(equipoBD, puerto, generarNuevosIds);
                    puertosMappingAntiguoNuevo.Add(puerto.Id, idPuerto);
                }

            }
            foreach (KeyValuePair<Guid, SwitchVLAN> swi in estacion.SwitchesVLan)
            {
                Equipos equipoBD = AgregarEquipo(estacionBD, swi.Value, generarNuevosIds);
                Switch swiBD = new Switch();
                swiBD.Id = equipoBD.Id;
                equipoBD.Switch = swiBD;
                swiBD.Equipos = equipoBD;
                foreach (PuertoEthernetLogicoBase puerto in swi.Value.PuertosEthernet)
                {
                    Guid idPuerto = AgregarPuerto(equipoBD, puerto, generarNuevosIds);
                    puertosMappingAntiguoNuevo.Add(puerto.Id, idPuerto);
                }
                foreach (VLan vLan in swi.Value.VLans)
                {
                    VLans vLanBD = new VLans();
                    if (generarNuevosIds)
                        vLanBD.Id = Guid.NewGuid();
                    else
                        vLanBD.Id = vLan.Id;
                    vLanBD.Nombre = vLan.Nombre;
                    vLanBD.IdSwitch = equipoBD.Id;
                    swiBD.VLans.Add(vLanBD);
                    vLanBD.Switch = swiBD;
                    foreach (PuertoEthernetLogicoBase puertoDeVLan in vLan.Puertos)
                    {
                        AsociacionesPuertosVLans asoc = new AsociacionesPuertosVLans();
                        asoc.Id = Guid.NewGuid();
                        asoc.IdPuerto = puertosMappingAntiguoNuevo[puertoDeVLan.Id];
                        asoc.IdVLan = vLanBD.Id;
                        asoc.VLans = vLanBD;
                        vLanBD.AsociacionesPuertosVLans.Add(asoc);
                    }

                }
            }
            foreach (KeyValuePair<Guid, RouterLogico> rou in estacion.Routers)
            {
                Equipos equipoBD = AgregarEquipo(estacionBD, rou.Value, generarNuevosIds);
                Routers routerBD = new Routers();
                routerBD.Id = equipoBD.Id;
                equipoBD.Routers = routerBD;
                routerBD.Equipos = equipoBD;
                foreach (PuertoEthernetLogicoBase puerto in rou.Value.PuertosEthernet)
                {
                    Guid idPuerto = AgregarPuerto(equipoBD, puerto, generarNuevosIds);
                    puertosMappingAntiguoNuevo.Add(puerto.Id, idPuerto);

                }
                foreach (RutaSOA entrada in rou.Value.TablaDeRutas.GetRutasEstaticas())
                {
                    Rutas ruta = new Rutas();
                    if (generarNuevosIds)
                        ruta.Id = Guid.NewGuid();
                    else
                        ruta.Id = entrada.Id;
                    ruta.IdPuerto = puertosMappingAntiguoNuevo[entrada.IdPuerto];
                    ruta.IdRouter = equipoBD.Id;
                    ruta.NextHopIP = entrada.NextHopIP;
                    ruta.Mascara = entrada.Mask;
                    ruta.Red = IPAddressFactory.GetValor(entrada.Red);
                    routerBD.Rutas.Add(ruta);
                }

            }


            foreach (KeyValuePair<Guid, CableDeRedLogico> par in estacion.Cables)
            {
                CableDeRedLogico cableLogico = par.Value;
                Cables cableBD = new Cables();
                if (generarNuevosIds)
                    cableBD.Id = Guid.NewGuid();
                else
                    cableBD.Id = cableLogico.Id;
                cableBD.IdPuerto1 = puertosMappingAntiguoNuevo[cableLogico.Puerto1.Id];
                cableBD.IdPuerto2 = puertosMappingAntiguoNuevo[cableLogico.Puerto2.Id];
                estacionBD.AgregarCable(cableBD);

            }
            return estacionBD;
        }
コード例 #2
0
 public void AgregarCable(Cables cable)
 {
     _cables.Add(cable);
 }
コード例 #3
0
ファイル: Red.cs プロジェクト: Xavinightshade/ipsimulator
 partial void DeleteCables(Cables instance);
コード例 #4
0
ファイル: Red.cs プロジェクト: Xavinightshade/ipsimulator
 partial void UpdateCables(Cables instance);
コード例 #5
0
ファイル: Red.cs プロジェクト: Xavinightshade/ipsimulator
 partial void InsertCables(Cables instance);
コード例 #6
0
ファイル: Red.cs プロジェクト: Xavinightshade/ipsimulator
		private void detach_Cables(Cables entity)
		{
			this.SendPropertyChanging();
			entity.Puertos = null;
		}
コード例 #7
0
ファイル: Red.cs プロジェクト: Xavinightshade/ipsimulator
		private void attach_Cables(Cables entity)
		{
			this.SendPropertyChanging();
			entity.Puertos = this;
		}