public async Task <IActionResult> EditDetailsDelivery(DetailsDeliveryViewModel model) { if (ModelState.IsValid) { var fullModel = new DetailsDelivery { Id = model.IdActa, Imagedoc2 = model.Imagedoc2, Imagedocl = model.Imagedocl, TelMovil = model.TelMovil }; try { _context.DetailsDeliveries.Update(fullModel); await _context.SaveChangesAsync(); //return RedirectToAction($"DetailsActa/{ model.IdActa}"); return(RedirectToAction($"{nameof(DetailsActa)}/{model.IdActa}")); } catch (Exception e) { throw; } } return(View(model)); }
public DetailsDeliveryViewModel ToEditDetailsActaViewModel(DetailsDelivery deliveryActa) { return(new DetailsDeliveryViewModel { IdActa = deliveryActa.Id, TelMovil = deliveryActa.TelMovil, Imagedoc2 = deliveryActa.Imagedoc2, Imagedocl = deliveryActa.Imagedocl }); }
public async Task <IActionResult> GetActasList(int?id) { if (id == null) { return(NotFound()); } var dateup = await _context.Sincros .FirstOrDefaultAsync(o => o.Id == id.Value); if (dateup == null) { return(NotFound()); } string fullUpdate = dateup.EndUpdate; try { var fileName = cn.ActasServer(fullUpdate); if (fileName.Tables[0].Rows.Count > 0) { int contadorSave = 0; int contadorUpdate = 0; var localDeliveryActas = _context.DeliveryActas.ToList(); var localDetailsDeliveryActas = _context.DetailsDeliveries.ToList(); List <DeliveryActa> newDeliveryActas = new List <DeliveryActa>(); List <Estudents> localStudents = await _context.Estudents.ToListAsync(); _context.ChangeTracker.AutoDetectChangesEnabled = false; foreach (DataRow dr in fileName.Tables[0].Rows) { int remoteActaId = (int)dr["Id"]; string entrega3 = dr["Entrega3"].ToString(); string entrega4 = dr["Entrega4"].ToString(); string entrega5 = dr["Entrega5"].ToString(); string entrega6 = dr["Entrega6"].ToString(); string entrega7 = dr["Entrega7"].ToString(); string doc = dr["Document"].ToString(); int idStudent = Convert.ToInt32(dr["EstudentsId"]); string dateUpdate = dr["FechaActualización"].ToString(); string prefix = dr["Prefix"].ToString(); int numSequence = Convert.ToInt32(dr["PrefixSequence"]); DeliveryActa newOrUpdatedDeliveryActa = new DeliveryActa(); newOrUpdatedDeliveryActa = localDeliveryActas.SingleOrDefault(t => t.Prefix == prefix && t.PrefixSequence == numSequence); if (newOrUpdatedDeliveryActa == null) { newOrUpdatedDeliveryActa = new DeliveryActa() { Entrega3 = Convert.ToBoolean(entrega3), Entrega4 = Convert.ToBoolean(entrega4), Entrega5 = Convert.ToBoolean(entrega5), Entrega6 = Convert.ToBoolean(entrega6), Entrega7 = Convert.ToBoolean(entrega7), Estudents = localStudents.Single(t => t.Document == doc), Prefix = prefix, PrefixSequence = numSequence, FechaActualización = Convert.ToDateTime(dateUpdate) }; _context.DeliveryActas.Add(newOrUpdatedDeliveryActa); var remoteDetailActaRows = fileName.Tables[0].Rows.Cast <DataRow>().Where(detailDrs => (int)detailDrs["DeliveryActaId"] == remoteActaId).ToList(); foreach (DataRow detailDr in remoteDetailActaRows) { long tel = (long)detailDr["TelMovil"]; string img1 = detailDr["Imagedocl"].ToString(); string img2 = detailDr["Imagedoc2"].ToString(); DateTime date = Convert.ToDateTime(detailDr["FechaActualización"]); DetailsDelivery newDetailsdeliveryActa = new DetailsDelivery() { DeliveryActa = newOrUpdatedDeliveryActa, TelMovil = tel, Imagedocl = img1, Imagedoc2 = img2, FechaActualización = date }; newOrUpdatedDeliveryActa.DetailsDeliveries.Add(newDetailsdeliveryActa); } contadorSave++; } else { if (Convert.ToDateTime(dateUpdate) > newOrUpdatedDeliveryActa.FechaActualización) { newOrUpdatedDeliveryActa.FechaActualización = Convert.ToDateTime(dateUpdate); contadorUpdate++; } } } _context.ChangeTracker.AutoDetectChangesEnabled = true; _context.ChangeTracker.DetectChanges(); await _context.SaveChangesAsync(); return(ViewBag.Success = $"Se Encontraron {fileName.Tables[0].Rows.Count} Registros de los cuales {contadorSave} son Nuevos y {contadorUpdate} se actualizaron."); } else { ViewBag.Success = $"No hay Registros Nuevos"; } return(RedirectToAction($"Index")); } catch (Exception e) { ViewBag.Message = $"Excepcion no Controlada: {e.Message} mas detalles:{e.InnerException}"; return(RedirectToAction($"Index")); } }