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; }
partial void DeleteVLans(VLans instance);
partial void UpdateVLans(VLans instance);
partial void InsertVLans(VLans instance);
private void detach_VLans(VLans entity) { this.SendPropertyChanging(); entity.Switch = null; }
private void attach_VLans(VLans entity) { this.SendPropertyChanging(); entity.Switch = this; }