private static Equipos AgregarEquipo(Estaciones estacionBD, EquipoLogico equipo, bool generarNuevosIds)
 {
     Equipos equipoBD = new Equipos();
     if (generarNuevosIds)
         equipoBD.Id = Guid.NewGuid();
     else
         equipoBD.Id = equipo.Id;
     equipoBD.Nombre = equipo.Nombre;
     equipoBD.TipoDeEquipo = (int)equipo.TipoDeEquipo;
     equipoBD.IdEstacion = estacionBD.Id;
     equipoBD.X = equipo.X;
     equipoBD.Y = equipo.Y;
     estacionBD.AgregarEquipo(equipoBD);
     return equipoBD;
 }
        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;
        }
예제 #3
0
 partial void DeleteEstaciones(Estaciones instance);
        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();
                }
            }
        }
예제 #5
0
 partial void UpdateEstaciones(Estaciones instance);
예제 #6
0
 partial void InsertEstaciones(Estaciones instance);
예제 #7
0
 public static void ActualizarEstacion(Estaciones estacion)
 {
     _db = GetNewBD();
     OperacionDelete(estacion.Id);
     _db.SubmitChanges();
     OperacionGuardarNuevaEstacion(estacion);
     _db.SubmitChanges();
 }
예제 #8
0
 public static void GuardarNuevaEstacion(Estaciones estacionBD)
 {
     _db = GetNewBD();
     OperacionGuardarNuevaEstacion(estacionBD);
     _db.SubmitChanges();
 }
예제 #9
0
        private static void OperacionGuardarNuevaEstacion(Estaciones estacion)
        {
            _db.Estaciones.InsertOnSubmit(estacion);
            foreach (Equipos equipo in estacion.EquiposBD)
            {
                _db.Equipos.InsertOnSubmit(equipo);

                if (equipo.Computadores != null)
                {
                    _db.Computadores.InsertOnSubmit(equipo.Computadores);
                }
                if (equipo.Routers != null)
                {
                    _db.Routers.InsertOnSubmit(equipo.Routers);
                    foreach (Rutas ruta in equipo.Routers.Rutas)
                    {
                        _db.Rutas.InsertOnSubmit(ruta);
                    }
                }
                if (equipo.Switch != null)
                {
                    _db.Switch.InsertOnSubmit(equipo.Switch);
                    foreach (VLans vLan in equipo.Switch.VLans)
                    {
                        _db.VLans.InsertOnSubmit(vLan);
                        foreach (AsociacionesPuertosVLans asoc in vLan.AsociacionesPuertosVLans)
                        {
                            _db.AsociacionesPuertosVLans.InsertOnSubmit(asoc);
                        }
                    }
                }

                foreach (Puertos puerto in equipo.PuertosBD)
                {
                    _db.Puertos.InsertOnSubmit(puerto);
                    if (puerto.PuertosCompletos != null)
                    {
                        _db.PuertosCompletos.InsertOnSubmit(puerto.PuertosCompletos);
                    }

                }
            }
            foreach (Cables cable in estacion.Cables)
            {
                _db.Cables.InsertOnSubmit(cable);
            }
        }