public void GestionarCiudad(DataTable dtbTmp, DataTable dtbEliminados) { DataTable dtbTmpEliminados = new DataTable(); DataSet dtsDatos = new DataSet(); ServicioProperTime.ServicioProperTimeClient objServicioProperTime; objServicioProperTime = new ServicioProperTime.ServicioProperTimeClient(); try { dtbTmpEliminados.Columns.Add(Constantes.ColumnaCentroCostosCodigo, typeof(int)); objServicioProperTime.Open(); // Enviar lo nuevos y editados // Crea tablas para insertar y actualizar DataTable dtbInsertar = dtbTmp.Clone(); DataTable dtbActualizar = dtbTmp.Clone(); foreach (DataRow dtrFila in dtbTmp.Rows) { if (dtrFila.RowState == DataRowState.Added) { dtbInsertar.ImportRow(dtrFila); } else if (dtrFila.RowState == DataRowState.Modified) { dtbActualizar.ImportRow(dtrFila); } } if (dtbInsertar.Rows.Count > 0) { dtsDatos = new DataSet(); dtbInsertar.TableName = "Ciiudad"; dtsDatos.Tables.Add(dtbInsertar.Copy()); objServicioProperTime.InsertarCiudad(dtsDatos); } if (dtbActualizar.Rows.Count > 0) { foreach (DataRow dtrFila in dtbActualizar.Rows) { objServicioProperTime.ActualizarCiudad(Convert.ToInt32(dtrFila[Constantes.ColumnaCiudadesCodigo].ToString()), dtrFila[Constantes.ColumnaCiudadesNombre].ToString()); } } if (dtbActualizar.Rows.Count > 0) { foreach (DataRow dtrFila in dtbEliminados.Rows) { objServicioProperTime.EliminarCiudad(Convert.ToInt32(dtrFila[Constantes.ColumnaCiudadesCodigo])); } } } catch (Exception ex) { throw ex; } finally { if (objServicioProperTime != null && objServicioProperTime.State == System.ServiceModel.CommunicationState.Opened) { objServicioProperTime.Close(); } } }