private static void CrearEquipos(EstacionModelo estacionLogica, Estaciones estacionBD)
        {
            foreach (Equipos equipoBD in estacionBD.EquiposBD)
            {
                switch ((TipoDeEquipo)equipoBD.TipoDeEquipo)
                {
                    case TipoDeEquipo.Ninguno:
                        throw new Exception();
                    case TipoDeEquipo.Computador:
                        ComputadorLogico pc = new ComputadorLogico(equipoBD.Id, equipoBD.X, equipoBD.Y, equipoBD.Nombre, equipoBD.Computadores.DefaultGateWay);
                        PuertosCompletos puertoCompleto = equipoBD.Puertos[0].PuertosCompletos;
                        pc.AgregarPuerto(puertoCompleto.Id, puertoCompleto.Puertos.Nombre, puertoCompleto.DireccionMAC, puertoCompleto.DireccionIP, puertoCompleto.Mascara, puertoCompleto.Puertos.Habilitado);
                        estacionLogica.CrearComputador(pc);
                        break;
                    case TipoDeEquipo.HUB:
                        HUBLogico hub = new HUBLogico(equipoBD.Id, equipoBD.X, equipoBD.Y, equipoBD.Nombre);
                        foreach (Puertos puertoBD in equipoBD.PuertosBD)
                        {
                            hub.AgregarPuerto(puertoBD.Id, puertoBD.Nombre, puertoBD.Habilitado);
                        }
                        estacionLogica.CrearHUB(hub);
                        break;
                    case TipoDeEquipo.Switch:
                        SwitchLogico swi = new SwitchLogico(equipoBD.Id, equipoBD.X, equipoBD.Y, equipoBD.Nombre);
                        foreach (Puertos puertoBD in equipoBD.PuertosBD)
                        {
                            swi.AgregarPuerto(puertoBD.Id, puertoBD.Nombre, puertoBD.Habilitado);
                        }
                        estacionLogica.CrearSwitch(swi);

                        break;
                    case TipoDeEquipo.SwitchVLan:
                        SwitchVLAN swiVLan = new SwitchVLAN(equipoBD.Id, equipoBD.X, equipoBD.Y, equipoBD.Nombre);
                        foreach (Puertos puertoBD in equipoBD.PuertosBD)
                        {
                            swiVLan.AgregarPuerto(puertoBD.Id, puertoBD.Nombre, puertoBD.Habilitado);
                        }
                        List<VLanSOA> vLansSOA = new List<VLanSOA>();
                        foreach (VLans vLanBD in equipoBD.Switch.VLans)
                        {
                            VLanSOA vLan = new VLanSOA(vLanBD.Id, vLanBD.Nombre);
                            foreach (AsociacionesPuertosVLans asoc in vLanBD.AsociacionesPuertosVLans)
                            {
                                vLan.IdPuertos.Add(asoc.IdPuerto);
                            }
                            vLansSOA.Add(vLan);
                        }
                        swiVLan.ActualizarVLans(vLansSOA);
                        estacionLogica.CrearSwitchVLan(swiVLan);
                        break;
                    case TipoDeEquipo.Router:
                        RouterLogico rou = new RouterLogico(equipoBD.Id, equipoBD.X, equipoBD.Y, equipoBD.Nombre);

                        foreach (Puertos puertoBD in equipoBD.PuertosBD)
                        {
                            PuertosCompletos puertoFull = puertoBD.PuertosCompletos;

                            rou.AgregarPuerto(puertoFull.Id, puertoFull.Puertos.Nombre, puertoFull.DireccionMAC, puertoFull.DireccionIP, puertoFull.Mascara, puertoFull.Puertos.Habilitado);
                        }
                        foreach (Rutas ruta in equipoBD.Routers.Rutas)
                        {
                            rou.CrearNuevaRuta(ruta.Id, ruta.IdPuerto, IPAddressFactory.GetIpRep((uint)ruta.Red), ruta.Mascara, ruta.NextHopIP);
                        }
                        estacionLogica.CrearRouter(rou);
                        break;
                    default:
                        throw new Exception();
                }
            }
        }
 /// <summary>
 /// Lista de clientes de la red
 /// </summary>
 /// 
 public void CrearComputador(ComputadorLogico pc)
 {
     _computadores.Add(pc.Id, pc);
     _puertos.Add(pc.PuertoEthernet.Id, pc.PuertoEthernet);
     pc.InicializarEquipo();
 }
Example #3
0
 public CapaRedPC(CapaDatos capaDatos,ComputadorLogico pc)
     :base(capaDatos)
 {
     _pc = pc;
 }
 public ModeloSnifferPC(ComputadorLogico pc)
 {
    _pc=pc;
     EscucharEventos();
 }
        public override void Dispose()
        {
            base.Dispose();
            _pc.CapaRed.CapaDatos.PaqueteEncapsulado -= new EventHandler<BusinessLogic.Datos.PaqueteEncapsuladoEventArgs>(CapaDatos_PaqueteEncapsulado);
            _pc.CapaRed.CapaDatos.PaqueteDesEncapsulado -= new EventHandler<BusinessLogic.Datos.PaqueteDesencapsuladoEventArgs>(CapaDatos_PaqueteDesEncapsulado);

            _pc = null;
        }
        private static ComputadorSOA CrearComputadorSOA(ComputadorLogico pcLogico)
        {
            ComputadorSOA equipoRespuesta = new ComputadorSOA(pcLogico.TipoDeEquipo, pcLogico.Id, pcLogico.X, pcLogico.Y,pcLogico.Nombre,pcLogico.DefaultGateWay);
            equipoRespuesta.AgregarPuerto(new PuertoCompletoSOA(pcLogico.PuertoEthernet.Id, pcLogico.PuertoEthernet.MACAddress,pcLogico.PuertoEthernet.Nombre,
                pcLogico.PuertoEthernet.IPAddress,pcLogico.PuertoEthernet.Mascara,pcLogico.PuertoEthernet.Habilitado));

            foreach (ArchivoSOA archivo in pcLogico.ArchivosRecibidos.Values)
            {
                equipoRespuesta.AgregarArchivo(archivo);
            }
            return equipoRespuesta;
        }
        public void PeticionCrearComputador(ComputadorSOA computadorVisulizacion)
        {

            ComputadorLogico pcLogico = new ComputadorLogico(Guid.NewGuid(),
                computadorVisulizacion.X, computadorVisulizacion.Y,computadorVisulizacion.Nombre,
                computadorVisulizacion.DefaultGateWay);
            pcLogico.AgregarPuerto(Guid.NewGuid(),"E.0",MACAddressFactory.NewMAC(),null,null,false);
            _estacion.CrearComputador(pcLogico);
            pcLogico.InformarVistas(_vistas);
            ComputadorSOA equipoRespuesta = CrearComputadorSOA(pcLogico);
            foreach (IVisualizacion cliente in _vistas)
            {
                cliente.CrearComputador(equipoRespuesta);
            }

        }