public ActionResult SavePermission(string data, string FunctionId) { var model = new JavaScriptSerializer().Deserialize <List <SavePermission> >(data); PermissionDao _permissiondao = new PermissionDao(); _permissiondao.DeleteAll(FunctionId); Permission permission = null; try { foreach (var item in model) { permission = new Permission(); permission.RoleId = item.RoleId; permission.FunctionId = FunctionId; permission.CanCreate = Boolean.Parse(item.CanCreate); permission.CanDelete = Boolean.Parse(item.CanDelete); permission.CanRead = Boolean.Parse(item.CanRead); permission.CanUpdate = Boolean.Parse(item.CanUpdate); _permissiondao.Save(permission); } var functions = new FunctionDao().GetAllWithParent(FunctionId); if (functions.Any()) { foreach (var item in functions) { _permissiondao.DeleteAll(item.Id); foreach (var p in model) { var childPermission = new Permission(); childPermission.FunctionId = item.Id; childPermission.RoleId = p.RoleId; childPermission.CanCreate = Boolean.Parse(p.CanCreate); childPermission.CanDelete = Boolean.Parse(p.CanDelete); childPermission.CanRead = Boolean.Parse(p.CanRead); childPermission.CanUpdate = Boolean.Parse(p.CanUpdate); _permissiondao.Save(childPermission); } } } return(Json(new { status = true }, JsonRequestBehavior.AllowGet)); } catch { return(Json(new { status = false }, JsonRequestBehavior.AllowGet)); } }