public ViewResult FormularioEditPersona(string rut)
            {
                Persona persona        = db.Persona.FirstOrDefault(c => c.Rut == rut);
                string  nombrecompleto = "";

                if (persona.RutSupervisor != 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(persona.RutSupervisor)).nombreCompleto;
                }
                string rutpersona    = null;
                string nombrepersona = null;
                string appersona     = null;
                string ampersona     = null;
                string cargopersona  = null;

                if (persona.Rut != null)
                {
                    rutpersona = persona.Rut.TrimEnd();
                }
                if (persona.Nombre != null)
                {
                    nombrepersona = persona.Nombre.TrimEnd();
                }
                if (persona.ApellidoPaterno != null)
                {
                    appersona = persona.ApellidoPaterno.TrimEnd();
                }
                if (persona.ApellidoMaterno != null)
                {
                    ampersona = persona.ApellidoMaterno.TrimEnd();
                }
                if (persona.Cargo != null)
                {
                    cargopersona = persona.Cargo.TrimEnd();
                }
                CreatePersona model = new CreatePersona()
                {
                    rut             = rutpersona,
                    Nombre          = nombrepersona,
                    ApellidoPaterno = appersona,
                    ApellidoMaterno = ampersona,
                    NombreCompleto  = nombrecompleto,
                    Sexo            = persona.Sexo,
                    RutSupervisor   = persona.RutSupervisor,
                    IdArea          = Convert.ToInt32(persona.IdArea),
                    IdSubArea       = Convert.ToInt32(persona.IdSubArea),
                    Cargo           = cargopersona,
                    //ListaPersonas = db.Persona.ToList(),
                    ListaAreas    = db.Area.ToList(),
                    ListaSubAreas = db.SubArea.ToList(),
                };


                return(View(model));
            }
            //public ViewResult Create() => View();


            public async Task <IActionResult> FormularioCrearPersona()
            {
                CreatePersona model = new CreatePersona()
                {
                    //ListaPersonas = db.Persona.ToList(),
                    ListaAreas    = db.Area.ToList(),
                    ListaSubAreas = db.SubArea.ToList(),
                };

                //ViewBag.Area = db.Area.ToList();

                return(View(model));
            }
            public IActionResult FormularioEditPersona(CreatePersona model)
            {
                if (ModelState.IsValid)
                {
                    Persona updatePersona = db.Persona.FirstOrDefault(c => c.Rut == model.rut);
                    updatePersona.Nombre          = model.Nombre;
                    updatePersona.ApellidoPaterno = model.ApellidoPaterno;
                    updatePersona.ApellidoMaterno = model.ApellidoMaterno;
                    updatePersona.Sexo            = model.Sexo;
                    updatePersona.RutSupervisor   = model.RutSupervisor;
                    updatePersona.IdArea          = model.IdArea;
                    updatePersona.IdSubArea       = model.IdSubArea;
                    updatePersona.Cargo           = model.Cargo;
                    db.Persona.Update(updatePersona);
                    db.SaveChanges();

                    return(RedirectToAction("CuentasPersonas"));
                }
                else
                {
                    return(FormularioEditPersona(model.rut.TrimEnd()));
                }
            }
            public async Task <IActionResult> FormularioCrearPersona(CreatePersona model)
            {
                if (ModelState.IsValid)
                {
                    string rut = model.rut.TrimEnd().Replace(".", "").ToUpper();
                    rut = rut.Replace(",", "");
                    rut = rut.Replace("-", "");
                    rut = rut.Replace("_", "");

                    if (db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(rut)) != null)
                    {
                        ModelState.AddModelError("Error", "Ya existe una persona con ese rut, ingresar un rut distinto para continuar");
                        return(await FormularioCrearPersona());
                    }
                    Persona persona = new Persona()
                    {
                        Rut             = rut,
                        Nombre          = model.Nombre,
                        ApellidoPaterno = model.ApellidoPaterno,
                        ApellidoMaterno = model.ApellidoMaterno,
                        Sexo            = model.Sexo,
                        RutSupervisor   = model.RutSupervisor,
                        IdArea          = model.IdArea,
                        IdSubArea       = model.IdSubArea,
                        Removed         = false,
                        Cargo           = model.Cargo,
                    };
                    db.Persona.Add(persona);
                    db.SaveChanges();

                    return(RedirectToAction("CuentasPersonas"));
                }
                else
                {
                    return(await FormularioCrearPersona());
                }
            }