예제 #1
0
        public void iniciarDatos(string _tabla)
        {
            //You always work on the active sheet
            Worksheet activeSheet = ((Worksheet)Globals.ThisAddIn.Application.Application.ActiveSheet);

            activeSheet.Change -= WorksheetChangeEventHandler;
            //The established connection of the properties of the sheet is obtained
            conexionSeleccionada = JsonConvert.DeserializeObject <conexionesOData>(fe.ReadProperty("conexionSeleccionada", activeSheet.CustomProperties));
            //The OData connection is established
            client = new ODataClient(conexionSeleccionada.Url);
            //Lets create an object to store the connection of the table
            conexionTabla conexiontabla = new conexionTabla();

            conexiontabla.Url   = conexionSeleccionada.Url;
            conexiontabla.Tabla = _tabla;

            //The connection property to the table is created for the sheet and the value is assigned
            if (fe.ReadProperty("conexionTabla", activeSheet.CustomProperties) == null)
            {
                activeSheet.CustomProperties.Add("conexionTabla", JsonConvert.SerializeObject(conexiontabla));
            }
            else
            {
                fe.setProperty("conexionTabla", activeSheet.CustomProperties, JsonConvert.SerializeObject(conexiontabla));
            }
            obtenerColumnasDeTabla(activeSheet, _tabla);
            traerDatosDeTabla(conexionSeleccionada.Url, _tabla, true);
        }
예제 #2
0
 private void button7_Click(object sender, RibbonControlEventArgs e)
 {
     try
     {
         Worksheet     activeSheet   = ((Worksheet)Globals.ThisAddIn.Application.Application.ActiveSheet);
         conexionTabla conexiontabla = JsonConvert.DeserializeObject <conexionTabla>(fe.ReadProperty("conexionTabla", activeSheet.CustomProperties));
         connections   ri            = new connections();
         ri.iniciarDatos(conexiontabla.Tabla);
     }catch
     {
         MessageBox.Show("Problem loading the data.");
     }
 }
예제 #3
0
        public void revisarInformacion(List <List <string> > listaDeDatosActualizados, List <List <string> > listaDeDatosCrudos)
        {
            formResultados.Show();
            formResultados.progressBar1.Maximum = listaDeDatosActualizados.Count;
            Worksheet     activeSheet   = ((Worksheet)Globals.ThisAddIn.Application.Application.ActiveSheet);
            conexionTabla conexiontabla = JsonConvert.DeserializeObject <conexionTabla>(fe.ReadProperty("conexionTabla", activeSheet.CustomProperties));
            ODataClient   client        = new ODataClient(conexiontabla.Url);
            int           index         = Convert.ToInt32(fe.ReadProperty("idLlavePrimaria", activeSheet.CustomProperties));
            int           contador      = 2;

            foreach (List <string> dato_actualizado in listaDeDatosActualizados)
            {
                List <List <string> > listaExistentes = listaDeDatosCrudos.FindAll(x => x.ElementAt(index) == dato_actualizado[index]);
                if (listaExistentes.Count > 0)
                {
                    foreach (List <string> trabajando in listaExistentes)
                    {
                        if (trabajando.SequenceEqual(dato_actualizado))
                        {
                            //MessageBox.Show("No cambio: " + dato_actualizado[1]);
                        }
                        else
                        {
                            //MessageBox.Show("Cambio: " + dato_actualizado[1]);
                            IDictionary <string, object> dictionary = crearDiccionarioUpdate(dato_actualizado, trabajando);
                            var ship = client.For(conexiontabla.Tabla).Key(dictionary).Set(dictionary).UpdateEntryAsync();

                            try
                            {
                                ship.Wait();
                                formResultados.richTextBox1.SelectionColor = Color.Green;
                                formResultados.richTextBox1.AppendText("Línea " + contador.ToString() + " - UPDATE - Correcto.\n");
                                //MessageBox.Show("Bien actualizado.\n");
                            }
                            catch
                            {
                                formResultados.richTextBox1.SelectionColor = Color.Red;
                                formResultados.richTextBox1.AppendText("Línea " + contador.ToString() + " - UPDATE - Error.\n");
                                //MessageBox.Show(ship.Exception.Message);
                                //MessageBox.Show(ship.Status.ToString());
                            }
                        }
                        listaDeDatosCrudos.Remove(trabajando);
                    }
                }
                else
                {
                    //MessageBox.Show("Insertar: " + dato_actualizado[1]);
                    IDictionary <string, object> dictionary = crearDiccionario(dato_actualizado);
                    var ship = client.For(conexiontabla.Tabla).Set(dictionary).InsertEntryAsync();
                    try
                    {
                        ship.Wait();
                        //MessageBox.Show("Dato agregado correctamente.");
                        formResultados.richTextBox1.SelectionColor = Color.Green;
                        formResultados.richTextBox1.AppendText("Línea " + contador.ToString() + " - INSERT - Correcto.\n");
                    }
                    catch
                    {
                        //MessageBox.Show(ship.Exception.Message);
                        //MessageBox.Show(ship.Status.ToString());
                        formResultados.richTextBox1.SelectionColor = Color.Red;
                        formResultados.richTextBox1.AppendText("Línea " + contador.ToString() + " - INSERT - Error.\n");
                    }
                }
                contador = contador + 1;
                formResultados.progressBar1.Value = formResultados.progressBar1.Value + 1;
            }

            foreach (List <string> eliminar in listaDeDatosCrudos)
            {
                //MessageBox.Show("Eliminar: " + eliminar[1]);
                IDictionary <string, object> dictionary = crearDiccionario(eliminar);
                var ship = client.For(conexiontabla.Tabla).Key(dictionary).DeleteEntriesAsync();
                try
                {
                    ship.Wait();
                    //MessageBox.Show("Dato eliminado");
                    formResultados.richTextBox1.SelectionColor = Color.Green;
                    formResultados.richTextBox1.AppendText("Línea - DELETE - Correcto.\n");
                }
                catch
                {
                    //MessageBox.Show(ship.Exception.Message);
                    //MessageBox.Show(ship.Status.ToString());
                    formResultados.richTextBox1.SelectionColor = Color.Red;
                    formResultados.richTextBox1.AppendText("Línea - DELETE - Error.\n");
                }
            }
            formResultados = new Resultados();
            connections ri = new connections();

            ri.traerDatosDeTabla(conexiontabla.Url, conexiontabla.Tabla, false);
        }