// ReSharper disable once FunctionComplexityOverflow public void GuardarDatos(Office.IRibbonControl control) { try { string name = Globals.ThisAddIn.Application.ActiveSheet.Name; if (name.Equals(@"ResumenMensual")) { //var mse = new MensajeDeEspera(() => //{ // DialogResult continuarCancelacion = MessageBox.Show(@"¿Desea detener la operación?", // @"Alerta", // MessageBoxButtons.YesNoCancel, // MessageBoxIcon.Question); // cancelar = continuarCancelacion == DialogResult.Yes; // return cancelar; //}); //mse.Show(); var sheet = Globals.ThisAddIn.Application.ActiveSheet; //var nInLastRow = sheet.Cells.Find("*", Missing.Value, Missing.Value, Missing.Value, XlSearchOrder.xlByRows, // XlSearchDirection.xlPrevious, false, Missing.Value, Missing.Value) // .Row; object[,] value = sheet.Range["B7", "M11"].Value; object[,] value1 = sheet.Range["B16", "M20"].Value; object[,] value2 = sheet.Range["B25", "M29"].Value; object[,] value3 = sheet.Range["B34", "M38"].Value; object[,] value4 = sheet.Range["B43", "M47"].Value; var lista = new List <Guardar>(); for (var x = 1; x <= (value.Length / 12); x++) { Dato = value[x, 10] == null ? "" : value[x, 10].ToString(); Dato2 = value[x, 11] == null ? "" : value[x, 11].ToString(); var id = value[x, 12] == null ? "" : value[x, 12].ToString(); var fechaguardar = Convert.ToDateTime(value[x, 1]).ToString("yyyy-MM-dd"); { if (value[x, 1] != null && value[x, 2] != null && value[x, 3] != null && value[x, 5] != null && value[x, 6] != null) { lista.Add(new Guardar { Fecha = fechaguardar, TipoTrade = value[x, 2].ToString(), Proceso = value[x, 3].ToString(), Direccion = value[x, 5].ToString(), Puntos = Convert.ToDouble(value[x, 6]), Exito = Dato, Fracaso = Dato2, Id = id }); } } } for (var x = 1; x <= (value1.Length / 12); x++) { Dato = value1[x, 10] == null ? "" : value1[x, 10].ToString(); Dato2 = value1[x, 11] == null ? "" : value1[x, 11].ToString(); var id = value1[x, 12] == null ? "" : value1[x, 12].ToString(); var fechaguardar = Convert.ToDateTime(value1[x, 1]).ToString("yyyy-MM-dd"); { if (value1[x, 1] != null && value1[x, 2] != null && value1[x, 3] != null && value1[x, 5] != null && value1[x, 6] != null) { lista.Add(new Guardar { Fecha = fechaguardar, TipoTrade = value1[x, 2].ToString(), Proceso = value1[x, 3].ToString(), Direccion = value1[x, 5].ToString(), Puntos = Convert.ToDouble(value1[x, 6]), Exito = Dato, Fracaso = Dato2, Id = (id) }); } } } for (var x = 1; x <= (value2.Length / 12); x++) { Dato = value2[x, 10] == null ? "" : value2[x, 10].ToString(); Dato2 = value2[x, 11] == null ? "" : value2[x, 11].ToString(); var id = value2[x, 12] == null ? "" : value2[x, 12].ToString(); var fechaguardar = Convert.ToDateTime(value2[x, 1]).ToString("yyyy-MM-dd"); { if (value2[x, 1] != null && value2[x, 2] != null && value2[x, 3] != null && value2[x, 5] != null && value2[x, 6] != null) { lista.Add(new Guardar { Fecha = fechaguardar, TipoTrade = value2[x, 2].ToString(), Proceso = value2[x, 3].ToString(), Direccion = value2[x, 5].ToString(), Puntos = Convert.ToDouble(value2[x, 6]), Exito = Dato, Fracaso = Dato2, Id = (id) }); } } } for (var x = 1; x <= (value3.Length / 12); x++) { Dato = value3[x, 10] == null ? "" : value3[x, 10].ToString(); Dato2 = value3[x, 11] == null ? "" : value3[x, 11].ToString(); var id = value3[x, 12] == null ? "" : value3[x, 12].ToString(); var fechaguardar = Convert.ToDateTime(value3[x, 1]).ToString("yyyy-MM-dd"); { if (value3[x, 1] != null && value3[x, 2] != null && value3[x, 3] != null && value3[x, 5] != null && value3[x, 6] != null) { lista.Add(new Guardar { Fecha = fechaguardar, TipoTrade = value3[x, 2].ToString(), Proceso = value3[x, 3].ToString(), Direccion = value3[x, 5].ToString(), Puntos = Convert.ToDouble(value3[x, 6]), Exito = Dato, Fracaso = Dato2, Id = id }); } } } for (var x = 1; x <= (value4.Length / 12); x++) { Dato = value4[x, 10] == null ? "" : value4[x, 10].ToString(); Dato2 = value4[x, 11] == null ? "" : value4[x, 11].ToString(); var fechaguardar = Convert.ToDateTime(value4[x, 1]).ToString("yyyy-MM-dd"); var id = value4[x, 12] == null ? "" : value4[x, 12].ToString(); { if (value4[x, 1] != null && value4[x, 2] != null && value4[x, 3] != null && value4[x, 5] != null && value4[x, 6] != null) { lista.Add(new Guardar { Fecha = fechaguardar, TipoTrade = value4[x, 2].ToString(), Proceso = value4[x, 3].ToString(), Direccion = value4[x, 5].ToString(), Puntos = Convert.ToDouble(value4[x, 6]), Exito = Dato, Fracaso = Dato2, Id = id }); } } } // ReSharper disable once ForCanBeConvertedToForeach for (var i = 0; i < lista.Count; i++) { if (lista[i].Id == "" && lista[i].Fecha != null && lista[i].TipoTrade != null && lista[i].Proceso != null && lista[i].Direccion != null) { var listaguardar = new Guardar { Fecha = lista[i].Fecha, TipoTrade = lista[i].TipoTrade, Proceso = lista[i].Proceso, Direccion = lista[i].Direccion, Puntos = lista[i].Puntos, Exito = lista[i].Exito, Fracaso = lista[i].Fracaso }; Opcion.EjecucionAsync(x => { Reporte.Guardado(x, listaguardar); }, resultado => { }); } else if ((lista[i].Id != null && lista[i].Fecha != null && lista[i].TipoTrade != null && lista[i].Proceso != null && lista[i].Direccion != null)) { var listaguardar = new Guardar { Id = lista[i].Id, Fecha = lista[i].Fecha, TipoTrade = lista[i].TipoTrade, Proceso = lista[i].Proceso, Direccion = lista[i].Direccion, Puntos = lista[i].Puntos, Exito = lista[i].Exito, Fracaso = lista[i].Fracaso }; Reporte.Actualizar(listaguardar); } } MessageBox.Show(@"La informacion se a guardado correctamente"); } else { throw new Exception( @"Debes escoger la hoja de trabajo 'ResumenMensual' para seleccionar esta opción."); } } catch (Exception e) { MessageBox.Show(e.Message); } }