コード例 #1
0
ファイル: EstudentsController.cs プロジェクト: luc0189/Pae
        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));
        }
コード例 #2
0
ファイル: ConverterHelper.cs プロジェクト: luc0189/Pae
 public DetailsDeliveryViewModel ToEditDetailsActaViewModel(DetailsDelivery deliveryActa)
 {
     return(new DetailsDeliveryViewModel
     {
         IdActa = deliveryActa.Id,
         TelMovil = deliveryActa.TelMovil,
         Imagedoc2 = deliveryActa.Imagedoc2,
         Imagedocl = deliveryActa.Imagedocl
     });
 }
コード例 #3
0
        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"));
            }
        }