public ActionResult Edit(string id, string UrlReferrer, bool?IsAddPop)
        {
            if (!User.CanAdd("Reports"))
            {
                return(RedirectToAction("Index", "Error"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ReportsInRole objreportsinrole = new ReportsInRole();
            var           reportsinrole    = db.ReportsInRoles.Where(p => p.ReportId == id);

            objreportsinrole.ReportId = id;
            if (reportsinrole.Count() > 0)
            {
                objreportsinrole.SelectedRoleId = reportsinrole.Select(r => r.RoleId).ToArray();
            }

            var RoleList = (new GeneratorBase.MVC.Models.CustomRoleProvider()).GetAllRolesReport();

            ViewBag.RoleId   = RoleList;
            ViewBag.IsAddPop = IsAddPop;
            ViewData["ReportsInRoleParentUrl"] = UrlReferrer;
            return(View(objreportsinrole));
        }
 public ActionResult Edit([Bind(Include = "Id,ReportId,RoleId,SelectedRoleId")] ReportsInRole reportsinrole, string UrlReferrer, bool?IsAddPop)
 {
     if (ModelState.IsValid || reportsinrole.Id == 0)
     {
         var objreportinrole = db.ReportsInRoles.Where(r => r.ReportId == reportsinrole.ReportId).ToList();
         foreach (var obj in objreportinrole)
         {
             db.ReportsInRoles.Remove(obj);
             db.SaveChanges();
         }
         if (reportsinrole.SelectedRoleId != null)
         {
             foreach (var role in reportsinrole.SelectedRoleId)
             {
                 ReportsInRole objreportinroleadd = new ReportsInRole();
                 objreportinroleadd.ReportId        = reportsinrole.ReportId;
                 objreportinroleadd.RoleId          = role;
                 db.Entry(objreportinroleadd).State = EntityState.Added;
                 db.ReportsInRoles.Add(objreportinroleadd);
             }
             db.SaveChanges();
         }
         return(Json("FROMPOPUP", "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet));
     }
     else
     {
         var errors = "";
         foreach (ModelState modelState in ViewData.ModelState.Values)
         {
             foreach (ModelError error in modelState.Errors)
             {
                 errors += error.ErrorMessage + ".  ";
             }
         }
         return(Json(errors, "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet));
     }
     return(View());
 }