private void LoadComboTables()
        {
            try
            {
                // Obtenemos la configuracion del origen
                SettingsModel model = SettingsManager.GetXml();
                if (model == null)
                    return;

                // Obtenemos la configuracion del destino
                SettingsModel modelDest = SettingsManager.GetXml(true);

                // Inicializamos el manager de origen
                DatabaseManage manager = new DatabaseManage(model);

                // Inicializamos el manager de destino
                DatabaseManage managerDest = new DatabaseManage(modelDest);

                // Obtenemos las tablas
                List<string> tables = manager.GetTables().ToList();

                int tableCount = tables.Count();
                int tableIndex = 0;

                foreach (string table in tables)
                {
                    tableIndex++;

                    progressBarResult.BeginInvoke(new Action(() =>
                    {
                        int newValue = (int) (((float) tableIndex/tableCount)*100);
                        if (newValue > 100)
                        {
                            newValue = 100;
                        }
                        progressBarResult.Value1 = newValue;
                    }));

                    // Buscamos la tabla en la base de datos de destino,
                    // si no existe, no la mostramos
                    if (!managerDest.GetTableWithName(table)) continue;

                    // Buscamos el numero de filas
                    string numRows = manager.GetCurrentRowsForTable(table);

                    // Agregamos la tabla al combo
                    srcTableDropdown.Items.Add(new RadListDataItem
                    {
                        Value = table,
                        Text = string.Format("{0} ({1})", table, numRows)
                    });
                }
            }
            catch (Exception ex)
            {
                DisplayMessage(ex.Message);
            }
        }
        private BindingSource LoadGridTable()
        {
            try
            {
                // Obtenemos la configuracion del destino
                SettingsModel modelDest = SettingsManager.GetXml(true);
                if (modelDest == null)
                    return null;

                // Inicializamos el manager de destino
                DatabaseManage managerDest = new DatabaseManage(modelDest);

                // Obtenemos las secuencias
                IEnumerable<string> sequences = managerDest.GetAllSequences().ToList();

                // Obtenemos las tablas
                List<string> tables = managerDest.GetTables().ToList();

                List<TableSequence> sequenceList = new List<TableSequence>();

                // Comparamos cada secuencia
                foreach (string seq in sequences)
                {
                    int cutIndex = seq.IndexOf("_id_seq", StringComparison.Ordinal);

                    if (cutIndex <= 0)
                    {
                        continue;
                    }

                    string tablename = seq.Substring(0, cutIndex);

                    if (!tables.Contains(tablename))
                    {
                        continue;
                    }

                    sequenceList.Add(new TableSequence
                    {
                        Active = true,
                        Sequence = seq,
                        Table = tablename,
                        MaxId = managerDest.GetMaxIdForTable(tablename)
                    });
                }

                // Asignamos los datos al grid
                var bindingList = new BindingList<TableSequence>(sequenceList);
                var source = new BindingSource(bindingList, null);
                return source;
            }
            catch (Exception ex)
            {
                DisplayMessage(ex.Message);
            }

            return null;
        }
        private void LoadTable(bool isDestination)
        {
            try
            {
                // Obtenemos la configuracion
                SettingsModel model = SettingsManager.GetXml(isDestination);
                if (model == null)
                    return;

                // Limpiamos el arbol
                if (isDestination)
                {
                    treeDest.Nodes.Clear();
                }
                else
                {
                    treeOrig.Nodes.Clear();
                }

                // Inicializamos el manager
                DatabaseManage manager = new DatabaseManage(model);

                // Obtenemos las tablas
                IEnumerable<string> tables = manager.GetTables();
                foreach (string table in tables)
                {
                    // Buscamos el numero de filas
                    string numRows = manager.GetRowsForTable(table);

                    // Agregamos la tabla al arbol
                    RadTreeNode tableNode = isDestination ?
                        treeDest.Nodes.Add(table, string.Format("{0} ({1})", table, numRows), "") :
                        treeOrig.Nodes.Add(table, string.Format("{0} ({1})", table, numRows), "");

                    // Obtenemos las columnas de la tabla
                    IEnumerable<string> columns = manager.GetColumnsForTable(table);
                    foreach (string column in columns)
                    {
                        // Agregamos la columna al nodo de la tabla
                        tableNode.Nodes.Add(column);
                    }
                }
            }
            catch (Exception ex)
            {
                DisplayMessage(ex.Message);
            }
        }