public IActionResult EliminarCausa(string Id, string IdEvento)
        {
            AnalisisCausaRaiz updateRCA = db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == Id);

            updateRCA.Removed = true;
            db.AnalisisCausaRaiz.Update(updateRCA);
            db.SaveChanges();

            Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == IdEvento);

            UpdateEvento.Ncaceptada = null;
            UpdateEvento.Estado     = 4;
            db.Evento.Update(UpdateEvento);
            db.SaveChanges();
            return(Json("Eliminado"));
        }
        public IActionResult EliminarCausaModal(EventoSecuenciaModels esm)
        {
            AnalisisCausaRaiz updateRCA = db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == esm.RCA.Id);

            updateRCA.Removed = true;
            db.AnalisisCausaRaiz.Update(updateRCA);
            db.SaveChanges();

            Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == esm.EventoUnico.Id);

            UpdateEvento.Ncaceptada = null;
            UpdateEvento.Estado     = 4;
            db.Evento.Update(UpdateEvento);
            db.SaveChanges();
            return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = esm.EventoUnico.Id.TrimEnd() }));
        }
        public async Task <IActionResult> FormularioEditCausa(AnalisisCausaRaizModels Edit, 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"))
                        {
                            //ModelState.AddModelError("Error1", "no hay Error en el formato del archivo" + " " + filename2.Last());
                        }
                        else
                        {
                            ModelState.AddModelError("Error2", "Error en el formato del archivo" + " " + "." + filename2.Last());
                            return(await FormularioEditCausa(Edit.RCAUnica.Id, Edit.EventoId));
                        }
                    }
                }



                AnalisisCausaRaiz updateRCA = db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == Edit.RCAUnica.Id);
                updateRCA.Descripcion        = Edit.Descripcion;
                updateRCA.IdOrigenFalla      = Edit.RCAUnica.IdOrigenFalla;
                updateRCA.FechaRegistro      = Edit.FechaRegistro;
                updateRCA.IdCausa1           = Edit.Causa1;
                updateRCA.IdCausa2           = Edit.Causa2;
                updateRCA.IdCausa3           = Edit.Causa3;
                updateRCA.IdCausa4           = Edit.Causa4;
                updateRCA.IdCausa5           = Edit.Causa5;
                updateRCA.IdCausaIntermedia1 = Edit.CausaIntermedia1;
                updateRCA.IdCausaIntermedia2 = Edit.CausaIntermedia2;
                updateRCA.IdFallaPrimaria    = Edit.FallaPrimaria;
                updateRCA.IdFallaSecundaria  = Edit.FallaSecundaria;
                updateRCA.Costo      = Convert.ToInt64(Edit.RCAUnica.Costo);
                updateRCA.IdProceso1 = Edit.Proceso1;
                updateRCA.IdProceso2 = Edit.Proceso2;
                updateRCA.IdProceso3 = Edit.Proceso3;
                updateRCA.IdProceso4 = Edit.Proceso4;
                updateRCA.IdProceso5 = Edit.Proceso5;

                db.AnalisisCausaRaiz.Update(updateRCA);
                db.SaveChanges();


                if (Edit.EventoUnico.Ncaceptada == true)
                {
                    Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == Edit.EventoId);
                    UpdateEvento.Ncaceptada = true;
                    UpdateEvento.Estado     = 5;
                    db.Evento.Update(UpdateEvento);
                    db.SaveChanges();
                }
                else
                {
                    if (Edit.EventoUnico.Ncaceptada == false)
                    {
                        Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == Edit.EventoId);
                        UpdateEvento.Ncaceptada = false;
                        UpdateEvento.Estado     = 10;
                        db.Evento.Update(UpdateEvento);
                        db.SaveChanges();
                    }
                }

                var    filePath       = Path.GetTempFileName();
                string direccionRCAId = db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == updateRCA.IdEvento).Id.TrimEnd();
                string concatenar     = updateRCA.IdEvento.TrimEnd() + "/" + "AnalisisCausaRaiz" + "/" + direccionRCAId;
                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 = updateRCA.IdEvento.TrimEnd(),
                            Nombre        = filename,
                            Tipo          = "AnalisisCausaRaiz",
                            Removed       = false,
                            FechaRegistro = DateTime.Now,
                        };
                        db.Archivo.Add(ar);
                        db.SaveChanges();
                    }
                }
                return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = Edit.EventoId }));
            }
            else
            {
                return(await FormularioEditCausa(Edit.RCAUnica.Id, Edit.EventoId.TrimEnd()));
            }
        }
        public async Task <IActionResult> FormularioEditCausa(string IdCausa, string EventoID)
        {
            int?Causa1           = null;
            int?Causa2           = null;
            int?Causa3           = null;
            int?Causa4           = null;
            int?Causa5           = null;
            int?CausaIntermedia1 = null;
            int?CausaIntermedia2 = null;

            int?Proceso1 = null;
            int?Proceso2 = null;
            int?Proceso3 = null;
            int?Proceso4 = null;
            int?Proceso5 = null;

            int?FallaPrimaria01   = null;
            int?FallaSecundaria01 = null;



            if (db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == IdCausa && !c.Removed == true) != null)
            {
                AnalisisCausaRaiz acr = db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == IdCausa && !c.Removed == true);

                if (db.Causa1.FirstOrDefault(c => c.Id == acr.IdCausa1) != null)
                {
                    Causa1 = db.Causa1.FirstOrDefault(c => c.Id == acr.IdCausa1).Id;
                }
                ;
                if (db.Causa2.FirstOrDefault(c => c.Id == acr.IdCausa2) != null)
                {
                    Causa2 = db.Causa2.FirstOrDefault(c => c.Id == acr.IdCausa2).Id;
                }
                ;
                if (db.Causa3.FirstOrDefault(c => c.Id == acr.IdCausa3) != null)
                {
                    Causa3 = db.Causa3.FirstOrDefault(c => c.Id == acr.IdCausa3).Id;
                }
                ;
                if (db.Causa4.FirstOrDefault(c => c.Id == acr.IdCausa4) != null)
                {
                    Causa4 = db.Causa4.FirstOrDefault(c => c.Id == acr.IdCausa4).Id;
                }
                ;
                if (db.Causa5.FirstOrDefault(c => c.Id == acr.IdCausa5) != null)
                {
                    Causa5 = db.Causa5.FirstOrDefault(c => c.Id == acr.IdCausa5).Id;
                }
                ;
                if (db.CausaIntermedia1.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia1) != null)
                {
                    CausaIntermedia1 = db.CausaIntermedia1.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia1).Id;
                }
                ;
                if (db.CausaIntermedia2.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia2) != null)
                {
                    CausaIntermedia2 = db.CausaIntermedia2.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia2).Id;
                }
                ;
                if (db.Proceso1.FirstOrDefault(c => c.Id == acr.IdProceso1) != null)
                {
                    Proceso1 = db.Proceso1.FirstOrDefault(c => c.Id == acr.IdProceso1).Id;
                }
                ;
                if (db.Proceso2.FirstOrDefault(c => c.Id == acr.IdProceso2) != null)
                {
                    Proceso2 = db.Proceso2.FirstOrDefault(c => c.Id == acr.IdProceso2).Id;
                }
                ;
                if (db.Proceso3.FirstOrDefault(c => c.Id == acr.IdProceso3) != null)
                {
                    Proceso3 = db.Proceso3.FirstOrDefault(c => c.Id == acr.IdProceso3).Id;
                }
                ;
                if (db.Proceso4.FirstOrDefault(c => c.Id == acr.IdProceso4) != null)
                {
                    Proceso4 = db.Proceso4.FirstOrDefault(c => c.Id == acr.IdProceso4).Id;
                }
                ;
                if (db.Proceso5.FirstOrDefault(c => c.Id == acr.IdProceso5) != null)
                {
                    Proceso5 = db.Proceso5.FirstOrDefault(c => c.Id == acr.IdProceso5).Id;
                }
                ;
                if (db.FallaPrimaria.FirstOrDefault(c => c.Id == acr.IdFallaPrimaria) != null)
                {
                    FallaPrimaria01 = db.FallaPrimaria.FirstOrDefault(c => c.Id == acr.IdFallaPrimaria).Id;
                }
                ;
                if (db.FallaSecundaria.FirstOrDefault(c => c.Id == acr.IdFallaSecundaria) != null)
                {
                    FallaSecundaria01 = db.FallaSecundaria.FirstOrDefault(c => c.Id == acr.IdFallaSecundaria).Id;
                }
                ;
            }
            ;

            AnalisisCausaRaizModels Edit = new AnalisisCausaRaizModels()
            {
                EventoId              = EventoID,
                RCAUnica              = db.AnalisisCausaRaiz.FirstOrDefault(c => c.Id == IdCausa),
                ListaOrigenFalla      = db.OrigenFalla.ToList(),
                EventoUnico           = db.Evento.FirstOrDefault(c => c.Id == EventoID),
                Causa1                = Causa1,
                Causa2                = Causa2,
                Causa3                = Causa3,
                Causa4                = Causa4,
                Causa5                = Causa5,
                CausaIntermedia1      = CausaIntermedia1,
                CausaIntermedia2      = CausaIntermedia2,
                ListaCausa1           = db.Causa1.ToList(),
                ListaCausa2           = db.Causa2.ToList(),
                ListaCausa3           = db.Causa3.ToList(),
                ListaCausa4           = db.Causa4.ToList(),
                ListaCausa5           = db.Causa5.ToList(),
                ListaCausaIntermedia1 = db.CausaIntermedia1.ToList(),
                ListaCausaIntermedia2 = db.CausaIntermedia2.ToList(),
                Proceso1              = Proceso1,
                Proceso2              = Proceso2,
                Proceso3              = Proceso3,
                Proceso4              = Proceso4,
                Proceso5              = Proceso5,
                ListaProceso1         = db.Proceso1.ToList(),
                ListaProceso2         = db.Proceso2.ToList(),
                ListaProceso3         = db.Proceso3.ToList(),
                ListaProceso4         = db.Proceso4.ToList(),
                ListaProceso5         = db.Proceso5.ToList(),
                ListaPersonas         = db.Persona.ToList(),
                ListaArchivos         = db.Archivo.ToList().Where(c => c.Identificador.TrimEnd().Equals(EventoID)),
                ListaPersonaEvento    = db.PersonaEvento.ToList().Where(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                FallaPrimaria         = FallaPrimaria01,
                FallaSecundaria       = FallaSecundaria01,
                ListaFallaPrimaria    = db.FallaPrimaria.ToList(),
                ListaFallaSecundaria  = db.FallaSecundaria.ToList(),
            };

            return(View(Edit));
        }
        public async Task <IActionResult> FormularioCrearCausa(AnalisisCausaRaizModels rca, List <IFormFile> files)
        {
            int contador = 0;

            string[] filename2;
            string   eventoid = rca.EventoId;

            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"))
                        {
                            //ModelState.AddModelError("Error1", "no hay Error en el formato del archivo" + " " + filename2.Last());
                        }
                        else
                        {
                            ModelState.AddModelError("Error2", "Error en el formato del archivo" + " " + "." + filename2.Last());
                            return(await FormularioCrearCausa(eventoid));
                        }
                    }
                }



                string          creadorRCA  = null;
                ClaimsPrincipal currentUser = User;
                if (db.AspNetUsers.FirstOrDefault(c => c.Id.Equals(currentUser.getUserId())).RutPersona != null)
                {
                    creadorRCA = db.AspNetUsers.FirstOrDefault(c => c.Id.Equals(currentUser.getUserId())).RutPersona;
                }

                AnalisisCausaRaiz acr = new AnalisisCausaRaiz()
                {
                    IdEvento           = rca.EventoId,
                    Creador            = creadorRCA,
                    FechaRegistro      = rca.FechaRegistro,
                    IdOrigenFalla      = rca.OrigenFalla,
                    IdFallaPrimaria    = rca.FallaPrimaria,
                    IdFallaSecundaria  = rca.FallaSecundaria,
                    IdCausa1           = rca.Causa1,
                    IdCausa2           = rca.Causa2,
                    IdCausa3           = rca.Causa3,
                    IdCausa4           = rca.Causa4,
                    IdCausa5           = rca.Causa5,
                    IdCausaIntermedia1 = rca.CausaIntermedia1,
                    IdCausaIntermedia2 = rca.CausaIntermedia2,
                    IdProceso1         = rca.Proceso1,
                    IdProceso2         = rca.Proceso2,
                    IdProceso3         = rca.Proceso3,
                    IdProceso4         = rca.Proceso4,
                    IdProceso5         = rca.Proceso5,
                    Descripcion        = rca.Descripcion,
                    Costo   = rca.Costo,
                    Removed = false,
                };
                db.AnalisisCausaRaiz.Add(acr);
                db.SaveChanges();

                if (rca.EventoUnico.Ncaceptada == true)
                {
                    Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == rca.EventoId);
                    UpdateEvento.Ncaceptada = true;
                    UpdateEvento.Estado     = 5;
                    db.Evento.Update(UpdateEvento);
                    db.SaveChanges();
                }
                else
                {
                    if (rca.EventoUnico.Ncaceptada == false)
                    {
                        Evento UpdateEvento = db.Evento.FirstOrDefault(c => c.Id == rca.EventoId);
                        UpdateEvento.Ncaceptada = false;
                        UpdateEvento.Estado     = 10;
                        db.Evento.Update(UpdateEvento);
                        db.SaveChanges();
                    }
                }

                // full path to file in temp location
                var filePath = Path.GetTempFileName();

                string direccionRCAId = db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == rca.EventoId).Id.TrimEnd();

                string concatenar = rca.EventoId.TrimEnd() + "/" + "AnalisisCausaRaiz" + "/" + direccionRCAId;

                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 = rca.EventoId.TrimEnd(),
                            Nombre        = filename,
                            Tipo          = "AnalisisCausaRaiz",
                            Removed       = false,
                            FechaRegistro = DateTime.Now,
                        };
                        db.Archivo.Add(ar);
                        db.SaveChanges();
                    }
                }

                return(RedirectToAction("Index", "EventoSecuencia", new { EventoID = rca.EventoId }));
            }
            else
            {
                return(await FormularioCrearCausa(rca.EventoId.TrimEnd()));
            }
        }
        // GET: /<controller>/


        public IActionResult Index(string EventoID)
        {
            string          CapturandoUsuario = null;
            ClaimsPrincipal currentUser       = User;
            PruebaUser      prueba;

            Evento EventoVariable    = db.Evento.FirstOrDefault(c => c.Id == EventoID);
            int?   Causa01           = null;
            int?   Causa02           = null;
            int?   Causa03           = null;
            int?   Causa04           = null;
            int?   Causa05           = null;
            int?   CausaIntermedia01 = null;
            int?   CausaIntermedia02 = null;
            int?   OrigenFalla0      = null;
            int?   ParteInt          = null;
            int?   FallaPrimaria01   = null;
            int?   FallaSecundaria01 = null;

            if (EventoVariable.Ncaceptada == true)
            {
                if (db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == EventoID && !c.Removed == true) != null)
                {
                    AnalisisCausaRaiz acr = db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == EventoID && !c.Removed == true);

                    if (db.OrigenFalla.FirstOrDefault(c => c.Id == acr.IdOrigenFalla) == null)
                    {
                        OrigenFalla0 = null;
                    }
                    else
                    {
                        OrigenFalla0 = db.OrigenFalla.FirstOrDefault(c => c.Id == acr.IdOrigenFalla).Id;
                    }
                    if (db.FallaPrimaria.FirstOrDefault(c => c.Id == acr.IdFallaPrimaria) == null)
                    {
                        FallaPrimaria01 = null;
                    }
                    else
                    {
                        FallaPrimaria01 = db.FallaPrimaria.FirstOrDefault(c => c.Id == acr.IdFallaPrimaria).Id;
                    }
                    if (db.FallaSecundaria.FirstOrDefault(c => c.Id == acr.IdFallaSecundaria) == null)
                    {
                        FallaSecundaria01 = null;
                    }
                    else
                    {
                        FallaSecundaria01 = db.FallaSecundaria.FirstOrDefault(c => c.Id == acr.IdFallaSecundaria).Id;
                    }

                    if (db.Causa1.FirstOrDefault(c => c.Id == acr.IdCausa1) == null)
                    {
                        Causa01 = null;
                    }
                    else
                    {
                        Causa01 = db.Causa1.FirstOrDefault(c => c.Id == acr.IdCausa1).Id;
                    }
                    if (db.Causa2.FirstOrDefault(c => c.Id == acr.IdCausa2) == null)
                    {
                        Causa02 = null;
                    }
                    else
                    {
                        Causa02 = db.Causa2.FirstOrDefault(c => c.Id == acr.IdCausa2).Id;
                    }
                    if (db.Causa3.FirstOrDefault(c => c.Id == acr.IdCausa3) == null)
                    {
                        Causa03 = null;
                    }
                    else
                    {
                        Causa03 = db.Causa3.FirstOrDefault(c => c.Id == acr.IdCausa3).Id;
                    }
                    if (db.Causa4.FirstOrDefault(c => c.Id == acr.IdCausa4) == null)
                    {
                        Causa04 = null;
                    }
                    else
                    {
                        Causa04 = db.Causa4.FirstOrDefault(c => c.Id == acr.IdCausa4).Id;
                    }
                    if (db.Causa5.FirstOrDefault(c => c.Id == acr.IdCausa5) == null)
                    {
                        Causa05 = null;
                    }
                    else
                    {
                        Causa05 = db.Causa5.FirstOrDefault(c => c.Id == acr.IdCausa5).Id;
                    }
                    if (db.CausaIntermedia1.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia1) == null)
                    {
                        CausaIntermedia01 = null;
                    }
                    else
                    {
                        CausaIntermedia01 = db.CausaIntermedia1.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia1).Id;
                    }
                    if (db.CausaIntermedia2.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia2) == null)
                    {
                        CausaIntermedia02 = null;
                    }
                    else
                    {
                        CausaIntermedia02 = db.CausaIntermedia2.FirstOrDefault(c => c.Id == acr.IdCausaIntermedia2).Id;
                    }
                }
            }
            string TipoEvento0;
            string Cliente0;
            string Equipo0;
            string Modelo0;
            string Componente0;
            string Area0;
            string SubArea0;
            string Parte0;

            if (db.TipoEvento.FirstOrDefault(c => c.Id == EventoVariable.TipoEvento) == null)
            {
                TipoEvento0 = null;
            }
            else
            {
                TipoEvento0 = db.TipoEvento.FirstOrDefault(c => c.Id == EventoVariable.TipoEvento).Tipo;
            }

            if (db.Cliente.FirstOrDefault(c => c.Id == EventoVariable.Cliente) == null)
            {
                Cliente0 = null;
            }
            else
            {
                Cliente0 = db.Cliente.FirstOrDefault(c => c.Id == EventoVariable.Cliente).Nombre;
            }

            if (db.Equipo.FirstOrDefault(c => c.Id == EventoVariable.Equipo) == null)
            {
                Equipo0 = null;
            }
            else
            {
                Equipo0 = db.Equipo.FirstOrDefault(c => c.Id == EventoVariable.Equipo).Nombre;
            }

            if (db.Modelo.FirstOrDefault(c => c.Id == EventoVariable.Modelo) == null)
            {
                Modelo0 = null;
            }
            else
            {
                Modelo0 = db.Modelo.FirstOrDefault(c => c.Id == EventoVariable.Modelo).Nombre;
            }

            if (db.Componente.FirstOrDefault(c => c.Id == EventoVariable.Componente) == null)
            {
                Componente0 = null;
            }
            else
            {
                Componente0 = db.Componente.FirstOrDefault(c => c.Id == EventoVariable.Componente).Nombre;
            }

            if (db.Parte.FirstOrDefault(c => c.Id == EventoVariable.Parte) == null)
            {
                Parte0 = null;
            }
            else
            {
                Parte0 = db.Parte.FirstOrDefault(c => c.Id == EventoVariable.Parte).Nombre;
            }

            if (db.Area.FirstOrDefault(c => c.Id == EventoVariable.Area) == null)
            {
                Area0 = null;
            }
            else
            {
                Area0 = db.Area.FirstOrDefault(c => c.Id == EventoVariable.Area).Nombre;
            }

            if (db.SubArea.FirstOrDefault(c => c.Id == EventoVariable.SubArea) == null)
            {
                SubArea0 = null;
            }
            else
            {
                SubArea0 = db.SubArea.FirstOrDefault(c => c.Id == EventoVariable.SubArea).Nombre;
            }

            string nombrecompletojefe = null;

            if (EventoVariable.RutJefeInvolucrado != null)
            {
                nombrecompletojefe = db.Persona.Select(c => new { nombreCompleto = c.Nombre.TrimEnd() + " " + c.ApellidoPaterno.TrimEnd() + " " + c.ApellidoMaterno.TrimEnd(), rut = c.Rut }).FirstOrDefault(c => c.rut.TrimEnd().Equals(EventoVariable.RutJefeInvolucrado)).nombreCompleto;
            }
            EventoSecuenciaModels EventoSecuenciaModels;
            Persona PersonaUnicaPrueba;

            if (currentUser.IsInRole("Admins"))
            {
                CapturandoUsuario = "Administrador";
                string creadorEvento = null;
                if (db.Persona.Select(c => new { nombreCompleto = c.Nombre + c.ApellidoPaterno + c.ApellidoMaterno, rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(EventoVariable.Creador)) != null)
                {
                    creadorEvento = db.Persona.Select(c => new { nombreCompleto = c.Nombre + c.ApellidoPaterno + c.ApellidoMaterno, rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(EventoVariable.Creador)).nombreCompleto;
                }
                else
                {
                    creadorEvento = "Administrador";
                }


                List <Persona> listapersonaAI = new List <Persona>();
                foreach (AccionInmediata ai in db.AccionInmediata.ToList())
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(ai.RutPersona.TrimEnd()));
                    listapersonaAI.Add(persona);
                }

                List <Persona> listapersonaAC = new List <Persona>();
                foreach (AccionCorrectiva ac in db.AccionCorrectiva.ToList().Where(c => c.EventoId.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(ac.RutPersona.TrimEnd()));
                    listapersonaAC.Add(persona);
                }

                List <Persona> listapersonaI = new List <Persona>();
                foreach (PersonaEventoInvolucrado pei in db.PersonaEventoInvolucrado.ToList().Where(c => c.IdEvento.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pei.RutPersona.TrimEnd()));
                    listapersonaI.Add(persona);
                }

                List <Persona> listapersonaR = new List <Persona>();
                foreach (PersonaEvento pe in db.PersonaEvento.ToList().Where(c => c.IdEvento.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pe.RutPersona.TrimEnd()));
                    listapersonaR.Add(persona);
                }

                AnalisisCausaRaiz RCA;
                RCA = db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == EventoID && !c.Removed == true);
                string creadorrca = null;
                if (RCA != null)
                {
                    if (RCA.Creador != null)
                    {
                        creadorrca = db.Persona.Select(c => new { nombreCompleto = c.Nombre.TrimEnd() + " " + c.ApellidoPaterno.TrimEnd() + " " + c.ApellidoMaterno.TrimEnd(), rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(RCA.Creador)).nombreCompleto;
                    }
                    else
                    {
                        creadorrca = "Administrador";
                    }
                }
                RespuestaCliente rc;
                rc = db.RespuestaCliente.FirstOrDefault(c => c.IdEvento.TrimEnd() == EventoID.TrimEnd() && c.Removed != true);

                List <Persona> listaAIInvolucrado = new List <Persona>();
                foreach (AccionInmediataPersona aii in db.AccionInmediataPersona.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(aii.RutPersona.TrimEnd()));
                    listaAIInvolucrado.Add(persona2);
                }
                List <Persona> listaJefeSupervisor = new List <Persona>();
                foreach (PersonaArea pa in db.PersonaArea.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pa.RutPersona.TrimEnd()));
                    listaJefeSupervisor.Add(persona2);
                }
                foreach (PersonaSubArea psa in db.PersonaSubArea.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(psa.RutPersona.TrimEnd()));
                    listaJefeSupervisor.Add(persona2);
                }

                EventoSecuenciaModels = new EventoSecuenciaModels()
                {
                    Creador     = creadorEvento,
                    CreadorRCA  = creadorrca,
                    TipoEvento  = TipoEvento0,
                    Cliente     = Cliente0,
                    Equipo      = Equipo0,
                    Modelo      = Modelo0,
                    Componente  = Componente0,
                    parte       = Parte0,
                    EventoUnico = db.Evento.FirstOrDefault(c => c.Id == EventoID),

                    ListaAccionesInmediatas          = db.AccionInmediata.Where(c => c.EventoId == EventoID && !c.Removed == true).ToList(),
                    ListaInvolucradosAccionInmediata = listaAIInvolucrado,
                    ListaPersonasAccionInmediata     = listapersonaAI,
                    ListaPersonasAccionCorrectiva    = listapersonaAC,
                    ListaPersonasInvolucrados        = listapersonaI,
                    ListaPersonasResponsable         = listapersonaR,
                    //ListaPersonas = db.Persona.ToList(),
                    //ListaSupervisores = db.Persona.ToList().Where(c => c.IdAreaJefeArea != null || c.IdSubAreaJefeSubArea != null),
                    ListaSupervisores             = listaJefeSupervisor.Distinct(),
                    ListaArchivos                 = db.Archivo.ToList().Where(c => c.Identificador.TrimEnd().Equals(EventoID)),
                    ListaPersonaEvento            = db.PersonaEvento.ToList().Where(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    ListaPersonaEventoInvolucrado = db.PersonaEventoInvolucrado.ToList().Where(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    ListaMensajes                 = db.Mensajes.ToList().Where(c => !c.Removed == true),
                    analisis                     = db.Analisis.FirstOrDefault(c => c.EventoId == EventoID),
                    RCA                          = RCA,
                    RespuestaUnica               = rc,
                    ListaCausas                  = db.Causa.Where(c => c.IdRca == db.AnalisisCausaRaiz.FirstOrDefault(d => d.IdEvento == EventoID).Id).ToList(),
                    ListaEstado                  = db.Estado.ToList(),
                    ListaOrigenFalla             = db.OrigenFalla.ToList(),
                    ListaAccionCorrectiva        = db.AccionCorrectiva.ToList().Where(c => c.EventoId.TrimEnd() == EventoID).OrderBy(d => d.FechaRegistro),
                    Evaluacion                   = db.Evaluacion.FirstOrDefault(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    Verificacion                 = db.Verificacion.FirstOrDefault(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    Area                         = Area0,
                    SubArea                      = SubArea0,
                    Causa1                       = Causa01,
                    Causa2                       = Causa02,
                    Causa3                       = Causa03,
                    Causa4                       = Causa04,
                    Causa5                       = Causa05,
                    CausaIntermedia1             = CausaIntermedia01,
                    CausaIntermedia2             = CausaIntermedia02,
                    ListaCausa1                  = db.Causa1.ToList(),
                    ListaCausa2                  = db.Causa2.ToList(),
                    ListaCausa3                  = db.Causa3.ToList(),
                    ListaCausa4                  = db.Causa4.ToList(),
                    ListaCausa5                  = db.Causa5.ToList(),
                    ListaCausaIntermedia1        = db.CausaIntermedia1.ToList(),
                    ListaCausaIntermedia2        = db.CausaIntermedia2.ToList(),
                    OrigenFalla                  = OrigenFalla0,
                    ResponsableInvolucradoNombre = nombrecompletojefe,
                    ListaProceso1                = db.Proceso1.ToList(),
                    ListaProceso2                = db.Proceso2.ToList(),
                    ListaProceso3                = db.Proceso3.ToList(),
                    ListaProceso4                = db.Proceso4.ToList(),
                    ListaProceso5                = db.Proceso5.ToList(),
                    ListaFallaPrimaria           = db.FallaPrimaria.ToList(),
                    ListaFallaSecundaria         = db.FallaSecundaria.ToList(),
                    FallaPrimaria                = FallaPrimaria01,
                    FallaSecundaria              = FallaSecundaria01,
                };
            }
            else
            {
                prueba = new PruebaUser()
                {
                    ListaUsuarios = db.AspNetUsers.ToList(),
                    Usuario       = new AspNetUsers()
                    {
                        Id = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value,
                    }
                };
                PersonaUnicaPrueba = db.Persona.FirstOrDefault(c => c.Rut == db.AspNetUsers.FirstOrDefault(d => d.Id.Equals(prueba.Usuario.Id)).RutPersona);
                CapturandoUsuario  = db.Persona.Select(c => new { nombreCompleto = c.Nombre + c.ApellidoPaterno + c.ApellidoMaterno, rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(db.AspNetUsers.FirstOrDefault(d => d.Id.Equals(prueba.Usuario.Id)).RutPersona)).nombreCompleto;
                string creadorEvento = null;
                if (db.Persona.Select(c => new { nombreCompleto = c.Nombre + c.ApellidoPaterno + c.ApellidoMaterno, rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(EventoVariable.Creador)) != null)
                {
                    creadorEvento = db.Persona.Select(c => new { nombreCompleto = c.Nombre + c.ApellidoPaterno + c.ApellidoMaterno, rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(EventoVariable.Creador)).nombreCompleto;
                }
                else
                {
                    creadorEvento = "Administrador";
                }
                List <Persona> listapersonaAI = new List <Persona>();

                foreach (AccionInmediata ai in db.AccionInmediata.ToList().Where(c => c.EventoId.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(ai.RutPersona.TrimEnd()));
                    listapersonaAI.Add(persona);
                }

                List <Persona> listapersonaAC = new List <Persona>();
                foreach (AccionCorrectiva ac in db.AccionCorrectiva.ToList().Where(c => c.EventoId.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(ac.RutPersona.TrimEnd()));
                    listapersonaAC.Add(persona);
                }

                List <Persona> listapersonaI = new List <Persona>();
                foreach (PersonaEventoInvolucrado pei in db.PersonaEventoInvolucrado.ToList().Where(c => c.IdEvento.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pei.RutPersona.TrimEnd()));
                    listapersonaI.Add(persona);
                }

                List <Persona> listapersonaR = new List <Persona>();
                foreach (PersonaEvento pe in db.PersonaEvento.ToList().Where(c => c.IdEvento.Equals(EventoVariable.Id)))
                {
                    Persona persona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pe.RutPersona.TrimEnd()));
                    listapersonaR.Add(persona);
                }
                AnalisisCausaRaiz RCA;
                RCA = db.AnalisisCausaRaiz.FirstOrDefault(c => c.IdEvento == EventoID && !c.Removed == true);
                string creadorrca = null;
                if (RCA != null)
                {
                    if (RCA.Creador != null)
                    {
                        creadorrca = db.Persona.Select(c => new { nombreCompleto = c.Nombre.TrimEnd() + " " + c.ApellidoPaterno.TrimEnd() + " " + c.ApellidoMaterno.TrimEnd(), rut = c.Rut }).FirstOrDefault(c => c.rut.Equals(RCA.Creador)).nombreCompleto;
                    }
                    else
                    {
                        creadorrca = "Administrador";
                    }
                }
                RespuestaCliente rc;
                rc = db.RespuestaCliente.FirstOrDefault(c => c.IdEvento.TrimEnd() == EventoID.TrimEnd() && c.Removed != true);

                List <Persona> listaAIInvolucrado = new List <Persona>();
                foreach (AccionInmediataPersona aii in db.AccionInmediataPersona.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(aii.RutPersona.TrimEnd()));
                    listaAIInvolucrado.Add(persona2);
                }
                List <Persona> listaJefeSupervisor = new List <Persona>();
                foreach (PersonaArea pa in db.PersonaArea.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pa.RutPersona.TrimEnd()));
                    listaJefeSupervisor.Add(persona2);
                }
                foreach (PersonaSubArea psa in db.PersonaSubArea.ToList())
                {
                    Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(psa.RutPersona.TrimEnd()));
                    listaJefeSupervisor.Add(persona2);
                }
                EventoSecuenciaModels = new EventoSecuenciaModels()
                {
                    Creador                          = creadorEvento,
                    CreadorRCA                       = creadorrca,
                    TipoEvento                       = TipoEvento0,
                    Cliente                          = Cliente0,
                    Equipo                           = Equipo0,
                    Modelo                           = Modelo0,
                    Componente                       = Componente0,
                    parte                            = Parte0,
                    EventoUnico                      = db.Evento.FirstOrDefault(c => c.Id == EventoID),
                    ListaAccionesInmediatas          = db.AccionInmediata.Where(c => c.EventoId == EventoID && !c.Removed == true).ToList(),
                    ListaInvolucradosAccionInmediata = listaAIInvolucrado,
                    ListaPersonasAccionInmediata     = listapersonaAI,
                    ListaPersonasAccionCorrectiva    = listapersonaAC,
                    ListaPersonasInvolucrados        = listapersonaI,
                    ListaPersonasResponsable         = listapersonaR,
                    //ListaPersonas = db.Persona.ToList(),
                    //ListaSupervisores = db.Persona.ToList().Where(c => c.IdAreaJefeArea != null || c.IdSubAreaJefeSubArea != null),
                    ListaSupervisores             = listaJefeSupervisor.Distinct(),
                    ListaArchivos                 = db.Archivo.ToList().Where(c => c.Identificador.TrimEnd().Equals(EventoID)),
                    ListaPersonaEvento            = db.PersonaEvento.ToList().Where(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    ListaPersonaEventoInvolucrado = db.PersonaEventoInvolucrado.ToList().Where(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    ListaMensajes                 = db.Mensajes.ToList().Where(c => !c.Removed == true),
                    analisis     = db.Analisis.FirstOrDefault(c => c.EventoId == EventoID),
                    PersonaUnica = PersonaUnicaPrueba,
                    ResponsableInvolucradoNombre = nombrecompletojefe,
                    RCA                   = RCA,
                    RespuestaUnica        = rc,
                    ListaCausas           = db.Causa.Where(c => c.IdRca == db.AnalisisCausaRaiz.FirstOrDefault(d => d.IdEvento == EventoID).Id).ToList(),
                    ListaEstado           = db.Estado.ToList(),
                    ListaOrigenFalla      = db.OrigenFalla.ToList(),
                    ListaAccionCorrectiva = db.AccionCorrectiva.ToList().Where(c => c.EventoId.TrimEnd() == EventoID).OrderBy(d => d.FechaRegistro),
                    Evaluacion            = db.Evaluacion.FirstOrDefault(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    Verificacion          = db.Verificacion.FirstOrDefault(c => c.IdEvento.TrimEnd().Equals(EventoID)),
                    ListaArea             = db.Area.ToList().Where(c => c.Removed != true),
                    ListaSubArea          = db.SubArea.ToList().Where(c => c.Removed != true),
                    Area                  = Area0,
                    SubArea               = SubArea0,
                    Causa1                = Causa01,
                    Causa2                = Causa02,
                    Causa3                = Causa03,
                    Causa4                = Causa04,
                    Causa5                = Causa05,
                    CausaIntermedia1      = CausaIntermedia01,
                    CausaIntermedia2      = CausaIntermedia02,
                    ListaCausa1           = db.Causa1.ToList(),
                    ListaCausa2           = db.Causa2.ToList(),
                    ListaCausa3           = db.Causa3.ToList(),
                    ListaCausa4           = db.Causa4.ToList(),
                    ListaCausa5           = db.Causa5.ToList(),
                    ListaCausaIntermedia1 = db.CausaIntermedia1.ToList(),
                    ListaCausaIntermedia2 = db.CausaIntermedia2.ToList(),
                    OrigenFalla           = OrigenFalla0,

                    ListaProceso1 = db.Proceso1.ToList(),
                    ListaProceso2 = db.Proceso2.ToList(),
                    ListaProceso3 = db.Proceso3.ToList(),
                    ListaProceso4 = db.Proceso4.ToList(),
                    ListaProceso5 = db.Proceso5.ToList(),

                    ListaFallaPrimaria   = db.FallaPrimaria.ToList(),
                    ListaFallaSecundaria = db.FallaSecundaria.ToList(),
                    FallaPrimaria        = FallaPrimaria01,
                    FallaSecundaria      = FallaSecundaria01,
                };
            }



            return(View(EventoSecuenciaModels));
        }