public ActionResult Edit(RoleQueryModel query_model)
        {
            Role role = Role.AsQueryable().Where(x => x._id == query_model.Id).FirstOrDefault();

            if (role != null)
            {
                RoleEditModel model = new RoleEditModel();
                model.Id = role._id;
                model.Name = role.Name;
                model.Description = role.Description;

                return View(model);
            }

            return HttpNotFound();
        }
        public ActionResult Create(RoleEditModel model)
        {
            if (ModelState.IsValid)
            {
                if (Role.AsQueryable().Where(x => x.Name == model.Name).Count() > 0)
                {
                    ModelState.AddModelError("Name", "The role name is already in use.");
                }
                else
                {
                    Role role = new Role();
                    role.Name = model.Name;
                    role.Description = model.Description;
                    role.Save();

                    return RedirectToAction("Index");
                }
            }
            return View();
        }
        public ActionResult Edit(RoleEditModel model)
        {
            if (ModelState.IsValid)
            {
                Role role = Role.AsQueryable().Where(x => x._id == model.Id).FirstOrDefault();

                if (role == null) return HttpNotFound();

                if (Role.AsQueryable().Where(x => x._id != model.Id && x.Name == model.Name).Count() > 0)
                {
                    ModelState.AddModelError("Name", "The role name is already in use.");
                    return View(model);
                }

                role.Name = model.Name;
                role.Description = model.Description;

                role.Save();

                return RedirectToAction("Index");
            }
            return View();
        }