/// <summary> /// Gets the actual entity. /// </summary> /// <param name="isDuplicate">Determines if the entity is a clone of an existing one.</param> /// <returns></returns> public Entidad GetEntidad(bool isDuplicate) { var entidad = isDuplicate ? new Entidad() : Entidad; ValidateEntity(); entidad.Apellido = txtApellido.Text; entidad.Nombre = txtNombre.Text; entidad.NroDocumento = txtDocumento.Text; entidad.TipoDocumento = txtTipo.Text; entidad.Cuil = txtCuil.Text; if (DireccionSearch1.Selected != null) { if (entidad.Direccion == null) { entidad.Direccion = new Direccion { Vigencia = new Vigencia { Inicio = DateTime.UtcNow } } } ; entidad.Direccion.CloneData(DireccionSearch1.Selected); } else { entidad.Direccion = null; } if (isDuplicate) { entidad.Id = 0; if (entidad.Direccion != null) { //entidad.Direccion.Id = 0; var dir = new Direccion { Vigencia = new Vigencia { Inicio = DateTime.UtcNow } }; dir.CloneData(entidad.Direccion); entidad.Direccion = dir; } } return(entidad); }
public ReferenciaGeografica GetNewGeoRefference() { if (!EditMode) { EditObject.Linea = IdLinea > 0 ? DAOFactory.LineaDAO.FindById(IdLinea) : null; EditObject.Empresa = EditObject.Linea != null ? EditObject.Linea.Empresa : IdEmpresa > 0 ? DAOFactory.EmpresaDAO.FindById(IdEmpresa) : null; } EditObject.TipoReferenciaGeografica = DAOFactory.TipoReferenciaGeograficaDAO.FindById(cbTipoReferenciaGeografica.Selected); if (!EditMode) { EditObject.Descripcion = EditGeoRef1.Direccion != null ? EditGeoRef1.Direccion.Descripcion : "Sin Descripcion"; } EditObject.Icono = IconId > 0 ? DAOFactory.IconoDAO.FindById(IconId) : null; EditObject.Color.HexValue = Color; EditObject.InhibeAlarma = EditObject.TipoReferenciaGeografica.InhibeAlarma; EditObject.EsInicio = EditObject.TipoReferenciaGeografica.EsInicio; EditObject.EsIntermedio = EditObject.TipoReferenciaGeografica.EsIntermedio; EditObject.EsFin = EditObject.TipoReferenciaGeografica.EsFin; var lastDir = EditObject.Direccion; var newDir = EditGeoRef1.Direccion; var lastPol = EditObject.Poligono; var newPol = EditGeoRef1.Poligono; var now = txtVigenciaDesde.SelectedDate.HasValue ? txtVigenciaDesde.SelectedDate.Value : DateTime.UtcNow; var ChangedPolygon = EditObject.Poligono == null ? EditGeoRef1.Poligono != null : !EditObject.Poligono.Equals(EditGeoRef1.Poligono); var ChangedDireccion = EditObject.Direccion == null ? EditGeoRef1.Direccion != null : !EditObject.Direccion.Equals(EditGeoRef1.Direccion); if (ChangedDireccion || ChangedPolygon) { if (lastPol != null && lastPol.Vigencia == null) { lastPol.Vigencia = new Vigencia(); } if (lastDir != null && lastDir.Vigencia == null) { lastDir.Vigencia = new Vigencia(); } if (ChangedPolygon && lastPol != null) { lastPol.Vigencia.Fin = now; } if (ChangedDireccion && lastDir != null) { lastDir.Vigencia.Fin = now; } var hist = EditObject.GetHistoria(now); if (hist != null && hist.Vigencia == null) { hist.Vigencia = new Vigencia(); } if (hist != null) { hist.Vigencia.Fin = now; } if (ChangedDireccion && EditObject.Direccion != null) { if (EditObject.Direccion.Vigencia == null) { EditObject.Direccion.Vigencia = new Vigencia(); } EditObject.Direccion.Vigencia.Fin = now; } if (ChangedPolygon && EditObject.Poligono != null) { if (EditObject.Poligono.Vigencia == null) { EditObject.Poligono.Vigencia = new Vigencia(); } EditObject.Poligono.Vigencia.Fin = now; } var newDireccion = EditObject.Direccion; var newPoligono = EditObject.Poligono; if (ChangedDireccion) { if (newDir == null) { newDireccion = null; } else { newDireccion = new Direccion { Vigencia = new Vigencia { Inicio = now } }; newDireccion.CloneData(newDir); } } if (ChangedPolygon) { if (newPol == null) { newPoligono = null; } else { newPoligono = new Poligono { Vigencia = new Vigencia { Inicio = now } }; newPoligono.AddPoints(newPol.ToPointFList()); newPoligono.Radio = newPol.Radio; } } if (newDireccion == null && newPoligono == null) { return(null); } EditObject.AddHistoria(newDireccion, newPoligono, now); } else if (EditObject.Direccion == null && EditObject.Poligono == null) { return(null); } if (EditObject.TipoReferenciaGeografica.ControlaVelocidad) { EditObject.VelocidadesMaximas.Clear(); foreach (TipoReferenciaVelocidad maxima in EditObject.TipoReferenciaGeografica.VelocidadesMaximas) { var gv = new ReferenciaVelocidad { ReferenciaGeografica = EditObject, TipoVehiculo = maxima.TipoVehiculo, VelocidadMaxima = maxima.VelocidadMaxima }; EditObject.VelocidadesMaximas.Add(gv); } } return(EditObject); }
/// <summary> /// Saves the Direccion /// </summary> protected override void OnSave() { EditObject.Linea = cbLinea.Selected > 0 ? DAOFactory.LineaDAO.FindById(cbLinea.Selected) : null; EditObject.Empresa = EditObject.Linea != null ? EditObject.Linea.Empresa : cbEmpresa.Selected > 0 ? DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected) : null; EditObject.TipoReferenciaGeografica = DAOFactory.TipoReferenciaGeograficaDAO.FindById(cbTipoReferenciaGeografica.Selected); EditObject.Descripcion = txtDescripcion.Text.Trim(); EditObject.Codigo = txtCodigo.Text.Trim(); EditObject.Observaciones = txtObservaciones.Text.Trim(); EditObject.Icono = SelectIcon2.Selected > 0 ? DAOFactory.IconoDAO.FindById(SelectIcon2.Selected) : null; EditObject.Color.HexValue = cpColor.Color; EditObject.InhibeAlarma = chkInhibeAlarma.Checked; EditObject.EsInicio = chkInicio.Checked; EditObject.EsIntermedio = chkIntermedio.Checked; EditObject.EsFin = chkFin.Checked; EditObject.IgnoraLogiclink = chkIgnoraLogiclink.Checked; if (EditObject.Vigencia == null) { EditObject.Vigencia = new Vigencia(); } EditObject.Vigencia.Inicio = txtFechaDesde.SelectedDate.HasValue ? txtFechaDesde.SelectedDate.Value.ToDataBaseDateTime() : DateTime.UtcNow; EditObject.Vigencia.Fin = txtFechaHasta.SelectedDate.HasValue ? (DateTime?)txtFechaHasta.SelectedDate.Value.ToDataBaseDateTime() : null; var lastDir = EditObject.Direccion; var newDir = EditGeoRef1.Direccion; var lastPol = EditObject.Poligono; var newPol = EditGeoRef1.Poligono; var now = txtVigenciaDesde.SelectedDate.HasValue ? txtVigenciaDesde.SelectedDate.Value.ToDataBaseDateTime() : DateTime.UtcNow; var changedDir = lastDir == null ? newDir != null : !lastDir.Equals(newDir); var changedPol = lastPol == null ? newPol != null : !lastPol.Equals(newPol); if (changedDir || changedPol) { if (lastPol != null && lastPol.Vigencia == null) { lastPol.Vigencia = new Vigencia(); } if (lastDir != null && lastDir.Vigencia == null) { lastDir.Vigencia = new Vigencia(); } if (changedPol && lastPol != null) { lastPol.Vigencia.Fin = now; } if (changedDir && lastDir != null) { lastDir.Vigencia.Fin = now; } if (changedDir && EditObject.Direccion != null) { if (EditObject.Direccion.Vigencia == null) { EditObject.Direccion.Vigencia = new Vigencia(); } EditObject.Direccion.Vigencia.Fin = now; } if (changedPol && EditObject.Poligono != null) { if (EditObject.Poligono.Vigencia == null) { EditObject.Poligono.Vigencia = new Vigencia(); } EditObject.Poligono.Vigencia.Fin = now; } var newDireccion = EditObject.Direccion; var newPoligono = EditObject.Poligono; if (changedDir) { if (newDir == null) { newDireccion = null; } else { newDireccion = new Direccion { Vigencia = new Vigencia { Inicio = now } }; newDireccion.CloneData(newDir); } } if (changedPol) { if (newPol == null) { newPoligono = null; } else { newPoligono = new Poligono { Vigencia = new Vigencia { Inicio = now } }; newPoligono.AddPoints(newPol.ToPointFList()); newPoligono.Radio = newPol.Radio; } } EditObject.AddHistoria(newDireccion, newPoligono, now); } if (EditObject.TipoReferenciaGeografica.ControlaVelocidad) { AddSpeedLimits(); } DAOFactory.ReferenciaGeograficaDAO.SingleSaveOrUpdate(EditObject); STrace.Trace("QtreeReset", "GeoRefAlta"); }