protected void botMigrateModel_Click(object sender, EventArgs e) { lblStatus.Text = "Start Migration"; DBHelper.ConnectionString = txtSourceConnection.Text; ModeloCompetencias _modelo = ModeloCompetencias.getDBModelo("JC", int.Parse(DDLModelos.SelectedValue)); // agora vai criar o modelo na base de dados de produção _modelo.loadFull("JC", null); DBHelper.ConnectionString = this.txtDestConnection.Text; // cria o modelo ModeloCompetencias NovoModelo = new ModeloCompetencias(); NovoModelo = _modelo; NovoModelo.reset(); NovoModelo.updateDBModelo("JC"); for (int i = 0; i < _modelo.Familias.Count; i++) { FamiliaCompetencias novaFam = new FamiliaCompetencias(NovoModelo); novaFam = NovoModelo.Familias.Values[i]; novaFam.Modelo = NovoModelo; novaFam.reset(); novaFam.SortIndex = i; novaFam.cloneDBFamilia("JC"); for (int j = 0; j < _modelo.Familias.Values[i].Competencias.Count; j++) { Competencia novaComp = new Competencia(); novaComp = NovoModelo.Familias.Values[i].Competencias.Values[j]; novaComp.reset(); novaComp.SortIndex = j; novaComp.Familia = novaFam; novaComp.cloneDBCompetencia("JC"); for (int k = 0; k < _modelo.Familias.Values[i].Competencias.Values[j].Praticas.Count; k++) { Pratica novaPrat = new Pratica(); novaPrat = NovoModelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k]; novaPrat.Competencia = novaComp; novaPrat.reset(); novaPrat.SortIndex = k; novaPrat.cloneDBPratica("JC"); for (int l = 0; l < _modelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k].Perguntas.Count; l++) { Pergunta novaPerg = new Pergunta(); novaPerg = NovoModelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k].Perguntas.Values[l]; novaPerg.reset(); novaPerg.Pratica = novaPrat; novaPerg.SortIndex = l; novaPerg.cloneDBPergunta("JC"); } } } } lblStatus.Text = "Migration Ended"; // depois volta a colocar a limpar a coisa DBHelper.ConnectionString = ""; }