//
        // GET: /Manage/Index
        public async Task<ActionResult> Index(ManageMessageId? message)
        {
            ApplicationDbContext db = new ApplicationDbContext();
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Su contraseña ha cambiado."
                : message == ManageMessageId.SetPasswordSuccess ? "Su contraseña ha sido configurada."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Su proveedor de autenticación ha sido configurado."
                : message == ManageMessageId.Error ? "Un error ha ocurrido."
                : message == ManageMessageId.AddPhoneSuccess ? "Su número teléfonico ha sido agregado."
                : message == ManageMessageId.RemovePhoneSuccess ? "Su número teléfonico ha sido eliminado."
                : "";
            List<Menus> defMenus = this.createDefMenus().Where(w => w.Status == "A").ToList();

            List<Menus> menus = db.Menus.Where(w => w.Status == "A").ToList();

            List<Menus> grantMenus = new List<Menus>();

            var userId = User.Identity.GetUserId();
            var userRole = UserManager.GetRoles(userId).Count == 0 ? "" : UserManager.GetRoles(userId)[0];

            foreach (var item in defMenus)
            {
                if (item.RoleName == null || item.RoleName == string.Empty)
                {
                    grantMenus.Add(item);
                }
                else
                {
                    string[] roles = item.RoleName.Split(',');

                    foreach (var roleItem in roles)
                    {
                        if (roleItem.Trim() == userRole)
                        {
                            grantMenus.Add(item);
                            break;
                        }
                    }
                }
            }

            foreach (var item in menus)
            {
                if (item.RoleName == null || item.RoleName == string.Empty)
                {
                    grantMenus.Add(item);
                }
                else
                {
                    string[] roles = item.RoleName.Split(',');

                    foreach (var roleItem in roles)
                    {
                        if (roleItem.Trim() == userRole)
                        {
                            grantMenus.Add(item);
                            break;
                        }
                    }
                }
            }

            var model = new IndexViewModel
            {
                HasPassword = HasPassword(),
                PhoneNumber = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId),
                menusList = grantMenus

            };
            return View(model);
        }
        // GET: /Manage/ConfigCount
        public async Task<ActionResult> ConfigCount(ManageMessageId? message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Su contraseña ha cambiado."
                : message == ManageMessageId.SetPasswordSuccess ? "Su contraseña ha sido configurada."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Su proveedor de autenticación ha sido configurado."
                : message == ManageMessageId.Error ? "Un error ha ocurrido."
                : message == ManageMessageId.AddPhoneSuccess ? "Su número teléfonico ha sido agregado."
                : message == ManageMessageId.RemovePhoneSuccess ? "Su número teléfonico ha sido eliminado."
                : "";

            var userId = User.Identity.GetUserId();
            var model = new IndexViewModel
            {
                HasPassword = HasPassword(),
                PhoneNumber = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };
            return View(model);
        }