public async Task <string> saveDatabase(List <DataPresupuesto> data, DataRowCollection data2) { try { //List<DataPresupuesto> data2 = data.Where(x => x.IdProyecto == 1).ToList(); List <DETALLEMOMENTOS> detallesdb = dbcontex.DETALLEMOMENTOS.ToList(); List <Atuevaluacion_demo> autoevaDetalledb = dbcontex.Atuevaluacion_demo.ToList(); #region file 1 foreach (DataPresupuesto row in data) { if (detallesdb.Where(x => x.ID_PROYECTO == row.IdProyecto && x.CLV_PARTID == row.ClvPartida).Count() == 0) { /*Guarda momento del modificado*/ if (row.Modificado.Count > 0) { DETALLEMOMENTOS dbmoments = new DETALLEMOMENTOS(); dbmoments.ID_PROYECTO = row.IdProyecto; dbmoments.CLV_PARTID = row.ClvPartida; dbmoments.MOMENTO = "MODIFICADO"; foreach (LCalendario momento in row.Modificado) { if (momento.Mes == LCalendario.Meses.Enero) { dbmoments.ENERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Febrero) { dbmoments.FEBRERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Marzo) { dbmoments.MARZO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Abril) { dbmoments.ABRIL = momento.Monto; } if (momento.Mes == LCalendario.Meses.Mayo) { dbmoments.MAYO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Junio) { dbmoments.JUNIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Julio) { dbmoments.JULIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Agosto) { dbmoments.AGOSTO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Septiembre) { dbmoments.SEPTIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Octubre) { dbmoments.OCTUBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Noviembre) { dbmoments.NOVIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Diciembre) { dbmoments.DICIEMBRE = momento.Monto; } } dbcontex.DETALLEMOMENTOS.Add(dbmoments); await dbcontex.SaveChangesAsync(); } /*Guarda momento del COMPROMETIDO*/ if (row.Comprometido.Count > 0) { DETALLEMOMENTOS dbmoments = new DETALLEMOMENTOS(); dbmoments.ID_PROYECTO = row.IdProyecto; dbmoments.CLV_PARTID = row.ClvPartida; dbmoments.MOMENTO = "COMPROMETIDO"; foreach (LCalendario momento in row.Comprometido) { if (momento.Mes == LCalendario.Meses.Enero) { dbmoments.ENERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Febrero) { dbmoments.FEBRERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Marzo) { dbmoments.MARZO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Abril) { dbmoments.ABRIL = momento.Monto; } if (momento.Mes == LCalendario.Meses.Mayo) { dbmoments.MAYO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Junio) { dbmoments.JUNIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Julio) { dbmoments.JULIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Agosto) { dbmoments.AGOSTO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Septiembre) { dbmoments.SEPTIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Octubre) { dbmoments.OCTUBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Noviembre) { dbmoments.NOVIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Diciembre) { dbmoments.DICIEMBRE = momento.Monto; } } dbcontex.DETALLEMOMENTOS.Add(dbmoments); await dbcontex.SaveChangesAsync(); } /*Guarda momento del DEVENGADO*/ if (row.Devengado.Count > 0) { DETALLEMOMENTOS dbmoments = new DETALLEMOMENTOS(); dbmoments.ID_PROYECTO = row.IdProyecto; dbmoments.CLV_PARTID = row.ClvPartida; dbmoments.MOMENTO = "DEVENGADO"; foreach (LCalendario momento in row.Devengado) { if (momento.Mes == LCalendario.Meses.Enero) { dbmoments.ENERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Febrero) { dbmoments.FEBRERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Marzo) { dbmoments.MARZO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Abril) { dbmoments.ABRIL = momento.Monto; } if (momento.Mes == LCalendario.Meses.Mayo) { dbmoments.MAYO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Junio) { dbmoments.JUNIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Julio) { dbmoments.JULIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Agosto) { dbmoments.AGOSTO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Septiembre) { dbmoments.SEPTIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Octubre) { dbmoments.OCTUBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Noviembre) { dbmoments.NOVIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Diciembre) { dbmoments.DICIEMBRE = momento.Monto; } } dbcontex.DETALLEMOMENTOS.Add(dbmoments); await dbcontex.SaveChangesAsync(); } /*Guarda momento del EJERCIDO*/ if (row.Ejercido.Count > 0) { DETALLEMOMENTOS dbmoments = new DETALLEMOMENTOS(); dbmoments.ID_PROYECTO = row.IdProyecto; dbmoments.CLV_PARTID = row.ClvPartida; dbmoments.MOMENTO = "EJERCIDO"; foreach (LCalendario momento in row.Ejercido) { if (momento.Mes == LCalendario.Meses.Enero) { dbmoments.ENERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Febrero) { dbmoments.FEBRERO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Marzo) { dbmoments.MARZO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Abril) { dbmoments.ABRIL = momento.Monto; } if (momento.Mes == LCalendario.Meses.Mayo) { dbmoments.MAYO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Junio) { dbmoments.JUNIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Julio) { dbmoments.JULIO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Agosto) { dbmoments.AGOSTO = momento.Monto; } if (momento.Mes == LCalendario.Meses.Septiembre) { dbmoments.SEPTIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Octubre) { dbmoments.OCTUBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Noviembre) { dbmoments.NOVIEMBRE = momento.Monto; } if (momento.Mes == LCalendario.Meses.Diciembre) { dbmoments.DICIEMBRE = momento.Monto; } } dbcontex.DETALLEMOMENTOS.Add(dbmoments); await dbcontex.SaveChangesAsync(); } } } #endregion file 1 #region file 2 if (data2 != null) { foreach (DataRow row in data2) { if (Int32.TryParse(row[0].ToString(), out int id_dependencia)) { String iddependencia = id_dependencia.ToString(); if (autoevaDetalledb.Where(x => x.ID_PROYECTO.Equals(iddependencia) && x.CLV_PARTIDA.Equals(row[5])).Count() == 0) { Atuevaluacion_demo auto = new Atuevaluacion_demo(); auto.CLV_UNIDADM = row[0].ToString(); auto.UNIDADM = row[1].ToString(); auto.TIPO_GASTO = row[2].ToString(); auto.CLV_CAPITULO = row[3].ToString(); auto.CAPITULO = row[4].ToString(); auto.CLV_PARTIDA = row[5].ToString(); auto.PARTIDA = row[6].ToString(); auto.CLV_LOCALIDAD = row[7].ToString(); auto.LOCALIDAD = row[8].ToString(); auto.CLV_FUENTE = row[9].ToString(); auto.FUENTE = row[10].ToString(); auto.ABR_FUENTE = row[11].ToString(); auto.CLV_RECURSO = row[12].ToString(); auto.RECURSO = row[13].ToString(); auto.ID_PROYECTO = row[14].ToString(); auto.PROYECTO = row[15].ToString(); auto.FECHA_INICIO = row[16].ToString(); auto.FECHA_TERMINO = row[17].ToString(); auto.N_PROGRAMA = row[18].ToString(); auto.PROGRAMA = row[19].ToString(); auto.PROG_PRESUP = row[20].ToString(); auto.CLV_EJE = row[21].ToString(); auto.EJE = row[22].ToString(); auto.CLV_PROG_ALIN = row[23].ToString(); auto.PROG_ALIN = row[24].ToString(); auto.CLV_OBJ_ALIN = row[25].ToString(); auto.OBJ_ALIN = row[26].ToString(); auto.CLV_EST_ALIN = row[27].ToString(); auto.EST_ALIN = row[28].ToString(); auto.CLV_LIN_ACC = row[29].ToString(); auto.LIN_ACC = row[30].ToString(); auto.CLV_IND_ALIN = row[31].ToString(); auto.IND_ALIN = row[32].ToString(); auto.CLV_META_ALIN = row[33].ToString(); auto.META_ALIN = row[34].ToString(); auto.CLV_FIN = row[35].ToString(); auto.FINAL = row[36].ToString(); auto.CLV_FUN = row[37].ToString(); auto.FUNCION = row[38].ToString(); auto.CLV_SUBFUN = row[39].ToString(); auto.SUBFUNCION = row[40].ToString(); auto.CLV_ACTINST = row[41].ToString(); auto.ACTIVIDAD_INST = row[42].ToString(); auto.MODEJECUC = row[43].ToString(); auto.MODAINVE = row[44].ToString(); auto.INICIAL = decimal.Parse(row[45].ToString()); auto.AMPLIADO = decimal.Parse(row[46].ToString()); auto.REDUCIDO = decimal.Parse(row[47].ToString()); auto.PRESUPUESTO = decimal.Parse(row[48].ToString()); auto.COMPROMETIDO = decimal.Parse(row[49].ToString()); auto.DEVENGADO = decimal.Parse(row[50].ToString()); auto.EJERCIDO = decimal.Parse(row[51].ToString()); auto.PAGADO = decimal.Parse(row[52].ToString()); auto.ESTADO = row[53].ToString(); dbcontex.Atuevaluacion_demo.Add(auto); await dbcontex.SaveChangesAsync(); } } } } #endregion file 2 return(""); } catch (Exception e) { throw (e); } }