public async Task <IActionResult> Edit(string id)
        {
            try
            {
                var token = _session.GetString("Token");
                if (Seguridad.validarUsuarioAdministrador(token))
                {
                    Administrativo admin = await _controladoraUsuarios.getAdministrativo(id);

                    if (admin == null)
                    {
                        return(RedirectToAction("Index"));
                    }
                    ViewModelAdministrativo editar = new ViewModelAdministrativo();
                    editar.Administrativo = admin;
                    editar.Id             = admin.Id.ToString();
                    if (admin.Tipo == "Administrador")
                    {
                        editar.Administrador = true;
                    }
                    else
                    {
                        editar.Administrador = false;
                    }
                    return(View(editar));
                }
                else
                {
                    return(RedirectToAction("Login", "Account"));
                }
            }
            catch (MensajeException msg)
            {
                TempData["Error"] = msg.Message;
                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                TempData["Error"] = "He ocurrido un error inesperado, intentelo de nuevo mas tarde";
                return(RedirectToAction("Index"));
            }
        }
        public async Task <IActionResult> Edit(string id, ViewModelAdministrativo model)
        {
            try
            {
                var token = _session.GetString("Token");
                if (Seguridad.validarUsuarioAdministrador(token))
                {
                    if (ModelState.IsValid)
                    {
                        if (model.Administrador)
                        {
                            model.Administrativo.Tipo = "Administrador";
                        }
                        else
                        {
                            model.Administrativo.Tipo = "Administrativo";
                        }
                        await _controladoraUsuarios.ModificarAdministrativo(model.Administrativo, model.Id);

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        return(View(model));
                    }
                }
                else
                {
                    return(RedirectToAction("Login", "Account"));
                }
            }
            catch (MensajeException msg)
            {
                ModelState.AddModelError(string.Empty, msg.Message);
                return(View(model));
            }
            catch (Exception)
            {
                ModelState.AddModelError(string.Empty, "Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
                return(View(model));
            }
        }
        public async Task <IActionResult> Create(ViewModelAdministrativo model)
        {
            try
            {
                var token = _session.GetString("Token");
                if (Seguridad.validarUsuarioAdministrativo(token))
                {
                    if (ModelState.IsValid)
                    {
                        if (model.ConfirmarPassword.Equals(model.Administrativo.Password))
                        {
                            Usuario usuario = await _controladoraUsuarios.CrearAdministrativo(model.Administrativo, model.Administrador);

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, "Las contraseñas deben coincidir");
                            return(View(model));
                        }
                    }
                    else
                    {
                        return(View(model));
                    }
                }
                else
                {
                    return(RedirectToAction("Login", "Account"));
                }
            }
            catch (MensajeException msg)
            {
                ModelState.AddModelError(string.Empty, msg.Message);
                return(View(model));
            }
            catch (Exception)
            {
                ModelState.AddModelError(string.Empty, "Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
                return(View(model));
            }
        }