public IActionResult Create()
        {
            SolicitudCreateViewModel model = new SolicitudCreateViewModel();
            var asistencias = from a in _context.Asistencia_Disponible
                              select a;

            model.Asistencias_Disponibles = asistencias.ToList();

            return(View(model));
        }
        public async Task <IActionResult> Create([Bind("SolicitudId,Nivel,Nombre,Apellido1,Apellido2,CorreoSolicitante,Carne,CarreraQueCursa,NumeroDeCreditos,Cedula,NumeroDeCuenta,InformeDeMatricula,ExpedienteAcademico,FotocopiaCedula,Asistencia,CantidadHE,CantidadHA,Telefono1,Telefono2,Promedio,CuentaBancaria,TieneHE,TieneHA,Banco")] Solicitud solicitud, IFormCollection form, SolicitudCreateViewModel model)
        {
            try
            {
                ViewBag.mensaje = "";
                string stemp = Convert.ToString(form["hidden"]);
                SolicitudCreateViewModel model1 = new SolicitudCreateViewModel();
                var asis = await _context.Asistencia_Disponible.ToListAsync();

                model1.Asistencias_Disponibles = asis;
                if (stemp == "")
                {
                    ViewBag.mensaje = "Debe seleccionar al menos una asistencia";
                    return(View(model1));
                }
                string[] asistencias = stemp.Split(",");
                Asistencia_Disponible asistenciaTemp;

                //SolicitudCreateViewModel model1 = new SolicitudCreateViewModel();
                //var asis = from a in _context.Asistencia_Disponible
                //           select a;
                //model1.Asistencias_Disponibles = asis.ToList();

                /*
                 * if (model == null) {
                 *  return View(model1);
                 * }
                 */
                if (solicitud.CantidadHA != 0 && solicitud.CantidadHA != null)
                {
                    solicitud.TieneHA = true;
                }
                if (solicitud.CantidadHE != 0 && solicitud.CantidadHE != null)
                {
                    solicitud.TieneHE = true;
                }
                if (solicitud.NumeroDeCuenta == 0 || solicitud.NumeroDeCuenta == null)
                {
                    solicitud.CuentaBancaria = true;
                }
                List <PDF> pdfs = new List <PDF>();

                int contadorArchivos = 0;

                if (model.archivos != null)
                {
                    for (int i = 0; i < model.archivos.Count(); i++)
                    {
                        pdfs.Add(Archivo(model.archivos[i]));
                        contadorArchivos++;
                    }
                }
                Byte[] archivoGenerico = { 0 };
                while (contadorArchivos < 3)
                {
                    PDF pdf = new PDF();
                    using (var memoryStream = new MemoryStream(archivoGenerico))
                    {
                        pdf.PDF_File = memoryStream.ToArray();
                    }
                    contadorArchivos++;
                    pdfs.Add(pdf);
                }

                foreach (PDF file in pdfs)
                {
                    _context.Add(file);
                    await _context.SaveChangesAsync();
                }

                PDF archivoTemp1 = await _context.PDF
                                   .FirstOrDefaultAsync(m => m.ID_PDF == pdfs[0].ID_PDF);

                PDF archivoTemp2 = await _context.PDF
                                   .FirstOrDefaultAsync(m => m.ID_PDF == pdfs[1].ID_PDF);

                PDF archivoTemp3 = await _context.PDF
                                   .FirstOrDefaultAsync(m => m.ID_PDF == pdfs[2].ID_PDF);

                if (ModelState.IsValid)
                {
                    short sem;
                    var   list = _context.Semestre.OrderByDescending(a => a.Numero).ToList();
                    if (list.Count == 0)
                    {
                        sem = 1;
                    }
                    else
                    {
                        sem = list.FirstOrDefault().Numero;
                    }

                    foreach (var item in asistencias)
                    {
                        Solicitud solicitudAdd = new Solicitud();
                        solicitudAdd.Nivel               = solicitud.Nivel;
                        solicitudAdd.Nombre              = solicitud.Nombre;
                        solicitudAdd.Apellido1           = solicitud.Apellido1;
                        solicitudAdd.Apellido2           = solicitud.Apellido2;
                        solicitudAdd.CorreoSolicitante   = solicitud.CorreoSolicitante;
                        solicitudAdd.Carne               = solicitud.Carne;
                        solicitudAdd.NumeroDeCreditos    = solicitud.NumeroDeCreditos;
                        solicitudAdd.Cedula              = solicitud.Cedula;
                        solicitudAdd.NumeroDeCuenta      = solicitud.NumeroDeCuenta;
                        solicitudAdd.Semestre            = sem;
                        solicitudAdd.FotocopiaCedula     = archivoTemp1.ID_PDF;
                        solicitudAdd.ExpedienteAcademico = archivoTemp3.ID_PDF;
                        solicitudAdd.InformeDeMatricula  = archivoTemp2.ID_PDF;
                        solicitudAdd.CarreraQueCursa     = solicitud.CarreraQueCursa;
                        solicitudAdd.CantidadHE          = solicitud.CantidadHE;
                        solicitudAdd.CantidadHA          = solicitud.CantidadHA;
                        solicitudAdd.Telefono1           = solicitud.Telefono1;
                        solicitudAdd.Telefono2           = solicitud.Telefono2;
                        solicitudAdd.Promedio            = solicitud.Promedio;
                        solicitudAdd.CuentaBancaria      = solicitud.CuentaBancaria;
                        solicitudAdd.TieneHE             = solicitud.TieneHE;
                        solicitudAdd.TieneHA             = solicitud.TieneHA;
                        solicitudAdd.Banco               = solicitud.Banco;


                        asistenciaTemp = await _context.Asistencia_Disponible
                                         .FirstOrDefaultAsync(m => m.IdAsistencia == Int32.Parse(item));

                        solicitudAdd.Asistencia = asistenciaTemp.IdAsistencia;


                        _context.Add(solicitudAdd);
                        await _context.SaveChangesAsync();

                        solicitud.SolicitudId++;
                    }
                    return(RedirectToAction("index", "home"));
                }

                return(View(model1));
            }
            catch (FormatException)
            {
                return(NotFound());
                // Return? Loop round? Whatever.
            }
        }