public IActionResult DeleteAccionCorrectiva(string AccionCorrectivaID)
        {
            AccionCorrectiva updateAccionCorrectiva = db.AccionCorrectiva.FirstOrDefault(c => c.Id == AccionCorrectivaID);

            updateAccionCorrectiva.Removed = true;


            db.AccionCorrectiva.Update(updateAccionCorrectiva);
            db.SaveChanges();
            //return RedirectToAction("Index");
            return(Json("Eliminado"));
        }
        public IActionResult FormularioEditAccionCorrectivaEtapa2(AccionCorrectivaModels accion)
        {
            AccionCorrectiva updateAccionCorrectiva = db.AccionCorrectiva.FirstOrDefault(c => c.Id == accion.AccionUnica.Id);

            updateAccionCorrectiva.FechaEjecucion = accion.FechaEjecucion;

            updateAccionCorrectiva.Descripcion = accion.Descripcion;

            db.AccionCorrectiva.Update(updateAccionCorrectiva);
            db.SaveChanges();
            //return RedirectToAction("Index");
            return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = accion.AccionUnica.EventoId.TrimEnd() }));
        }
        public IActionResult DeleteArchivoEdit(string EventoId, int FileId)
        {
            Archivo DeleteArchivo = db.Archivo.FirstOrDefault(c => c.FileId == FileId);

            DeleteArchivo.Removed = true;
            db.Archivo.Update(DeleteArchivo);
            db.SaveChanges();

            AccionCorrectiva ac = db.AccionCorrectiva.FirstOrDefault(c => c.EventoId.TrimEnd().Equals(EventoId));


            return(RedirectToAction("FormularioEditAccionCorrectiva", "AccionCorrectiva", new { EventoID = EventoId, AccionCorrectivaID = ac.Id }));
        }
        public async Task <IActionResult> FormularioCerrarAccionCorrectiva(string EventoID, string AccionCorrectivaID)
        {
            AccionCorrectiva       AC     = db.AccionCorrectiva.FirstOrDefault(c => c.Id == AccionCorrectivaID);
            AccionCorrectivaModels Accion = new AccionCorrectivaModels()
            {
                AccionUnica = AC,
                //ListaPersonas = db.Persona.ToList().Where(c => !c.Removed == true),
                ListaArchivos = db.Archivo.ToList().Where(c => !c.Removed == true),
            };
            string nombrecompleto = null;

            if (AC.RutPersona != null)
            {
                nombrecompleto = db.Persona.Select(c => new { nombreCompleto = c.Nombre.TrimEnd() + " " + c.ApellidoPaterno.TrimEnd() + " " + c.ApellidoMaterno.TrimEnd(), rut = c.Rut }).FirstOrDefault(c => c.rut.TrimEnd().Equals(Accion.AccionUnica.RutPersona.TrimEnd())).nombreCompleto;
            }
            Accion.NombreCompleto = nombrecompleto;
            Accion.RutPersona     = AC.RutPersona;
            return(View(Accion));
        }
        public async Task <IActionResult> FormularioEditarArchivoAccionCorrectiva(AccionCorrectivaModels ac, List <IFormFile> files)
        {
            AccionCorrectiva updateAccionCorrectiva = db.AccionCorrectiva.FirstOrDefault(c => c.Id == ac.AccionUnica.Id);

            updateAccionCorrectiva.Estado         = "Cerrado";
            updateAccionCorrectiva.Descripcion    = ac.Descripcion;
            updateAccionCorrectiva.FechaEjecucion = ac.FechaEjecucion;
            db.AccionCorrectiva.Update(updateAccionCorrectiva);
            db.SaveChanges();


            var    filePath      = Path.GetTempFileName();
            string direccionACId = ac.AccionUnica.Id.TrimEnd();
            string concatenar    = ac.AccionUnica.EventoId.TrimEnd() + "/" + "AccionCorrectiva" + "/" + direccionACId;

            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {
                    string uploadPath = Path.Combine(_enviroment.WebRootPath, "uploads");
                    Directory.CreateDirectory(Path.Combine(uploadPath, concatenar));
                    string filename = formFile.FileName;
                    using (FileStream fs = new FileStream(Path.Combine(uploadPath, concatenar, filename), FileMode.Create))
                    {
                        await formFile.CopyToAsync(fs);
                    }

                    Archivo ar = new Archivo()
                    {
                        Identificador  = ac.AccionUnica.EventoId.TrimEnd(),
                        Identificador2 = ac.AccionUnica.Id.TrimEnd(),
                        Nombre         = filename,
                        Tipo           = "AccionCorrectiva",
                        Removed        = false,
                        FechaRegistro  = DateTime.Now,
                    };
                    db.Archivo.Add(ar);
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("FormularioEditAccionCorrectiva", "AccionCorrectiva", new { EventoID = ac.AccionUnica.EventoId.TrimEnd(), AccionCorrectivaID = ac.AccionUnica.Id.TrimEnd() }));
        }
        public async Task <IActionResult> FormularioEditAccionCorrectiva(AccionCorrectivaModels accion)
        {
            if (ModelState.IsValid)
            {
                AccionCorrectiva updateAccionCorrectiva = db.AccionCorrectiva.FirstOrDefault(c => c.Id == accion.AccionUnica.Id);
                updateAccionCorrectiva.RutPersona        = accion.RutPersona;
                updateAccionCorrectiva.FechaLimite       = accion.FechaLImite;
                updateAccionCorrectiva.Causa             = accion.Causa;
                updateAccionCorrectiva.AccionCorrectiva1 = accion.AccionCorrectiva;
                updateAccionCorrectiva.Descripcion       = accion.Descripcion;

                db.AccionCorrectiva.Update(updateAccionCorrectiva);
                db.SaveChanges();
                return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = accion.AccionUnica.EventoId.TrimEnd() }));
            }
            else
            {
                return(await FormularioEditAccionCorrectiva(accion.AccionUnica.EventoId.TrimEnd(), accion.AccionUnica.Id.TrimEnd()));
            }
        }
        public async Task <IActionResult> CrearFormularioAccionCorrectiva(AccionCorrectivaModels AC)
        {
            if (ModelState.IsValid)
            {
                AccionCorrectiva Accion = new AccionCorrectiva()
                {
                    FechaRegistro     = DateTime.Now,
                    FechaLimite       = AC.FechaLImite,
                    EventoId          = AC.EventoId,
                    RutPersona        = AC.RutPersona,
                    Causa             = AC.Causa,
                    AccionCorrectiva1 = AC.AccionCorrectiva,
                    Estado            = "Pendiente",
                    Removed           = false,
                };
                db.AccionCorrectiva.Add(Accion);
                db.SaveChanges();

                PersonaEvento pe = new PersonaEvento()
                {
                    RutPersona         = AC.RutPersona,
                    IdEvento           = AC.EventoId.TrimEnd(),
                    Removed            = false,
                    FechaRegistro      = DateTime.Now,
                    Estado             = 6,
                    IdAccionCorrectiva = Accion.Id,
                };
                db.PersonaEvento.Add(pe);
                db.SaveChanges();



                return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = AC.EventoId }));
            }
            else
            {
                return(await CrearFormularioAccionCorrectiva(AC.EventoId.TrimEnd()));
            }
        }
        public async Task <IActionResult> FormularioCerrarAccionCorrectiva(AccionCorrectivaModels ac, List <IFormFile> files)
        {
            int contador = 0;

            string[] filename2;
            if (ModelState.IsValid)
            {
                foreach (var formFile in files)
                {
                    contador++;

                    if (formFile.Length > 0)
                    {
                        string cadena = formFile.FileName;
                        filename2 = cadena.Split('.');
                        if (filename2.Last().Equals("doc") || filename2.Last().Equals("docx") || filename2.Last().Equals("txt") || filename2.Last().Equals("csv") || filename2.Last().Equals("pdf") || filename2.Last().Equals("xls") || filename2.Last().Equals("xlsx") || filename2.Last().Equals("odp") || filename2.Last().Equals("ods") || filename2.Last().Equals("odt") || filename2.Last().Equals("vsd") || filename2.Last().Equals("pptx") || filename2.Last().Equals("ppt") || filename2.Last().Equals("potx") || filename2.Last().Equals("png") || filename2.Last().Equals("jpg") || filename2.Last().Equals("jpeg") || filename2.Last().Equals("ico") || filename2.Last().Equals("webp") || filename2.Last().Equals("avi") || filename2.Last().Equals("mp4") || filename2.Last().Equals("mpeg") || filename2.Last().Equals("mpg") || filename2.Last().Equals("ogv") || filename2.Last().Equals("webm") || filename2.Last().Equals("mp3") || filename2.Last().Equals("wav") || filename2.Last().Equals("oga") || filename2.Last().Equals("aac") || filename2.Last().Equals("mid") || filename2.Last().Equals("midi") || filename2.Last().Equals("weba") || filename2.Last().Equals("rar") || filename2.Last().Equals("zip") || filename2.Last().Equals("bz") || filename2.Last().Equals("bz2"))
                        {
                        }
                        else
                        {
                            ModelState.AddModelError("Error2", "Error en el formato del archivo" + " " + "." + filename2.Last());
                            return(await FormularioCerrarAccionCorrectiva(ac.AccionUnica.EventoId.TrimEnd(), ac.AccionUnica.Id));
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                AccionCorrectiva updateAccionCorrectiva = db.AccionCorrectiva.FirstOrDefault(c => c.Id == ac.AccionUnica.Id);
                updateAccionCorrectiva.Estado = "Cerrado";

                updateAccionCorrectiva.Descripcion    = ac.Descripcion;
                updateAccionCorrectiva.FechaEjecucion = ac.FechaEjecucion;

                db.AccionCorrectiva.Update(updateAccionCorrectiva);
                db.SaveChanges();


                var filePath = Path.GetTempFileName();

                string direccionACId = ac.AccionUnica.Id.TrimEnd();

                string concatenar = ac.AccionUnica.EventoId.TrimEnd() + "/" + "AccionCorrectiva" + "/" + direccionACId;

                foreach (var formFile in files)
                {
                    if (formFile.Length > 0)
                    {
                        string uploadPath = Path.Combine(_enviroment.WebRootPath, "uploads");
                        Directory.CreateDirectory(Path.Combine(uploadPath, concatenar));
                        string filename = formFile.FileName;
                        using (FileStream fs = new FileStream(Path.Combine(uploadPath, concatenar, filename), FileMode.Create))
                        {
                            await formFile.CopyToAsync(fs);
                        }

                        Archivo ar = new Archivo()
                        {
                            Identificador  = ac.AccionUnica.EventoId.TrimEnd(),
                            Identificador2 = ac.AccionUnica.Id.TrimEnd(),
                            Nombre         = filename,
                            Tipo           = "AccionCorrectiva",
                            Removed        = false,
                            FechaRegistro  = DateTime.Now,
                        };
                        db.Archivo.Add(ar);
                        db.SaveChanges();
                    }
                }
                return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = ac.AccionUnica.EventoId.TrimEnd() }));
            }
            else
            {
                return(await FormularioCerrarAccionCorrectiva(ac.AccionUnica.EventoId.TrimEnd(), ac.AccionUnica.Id));
            }
        }