//
 // GET: /Platform/SysController/Edit/5
 public ActionResult Edit(Guid? id)
 {
     var item = new SysController();
     if (id.HasValue)
     {
         item = _sysControllerService.GetById(id.Value);
     }
     ViewBag.SysAreaId = new SelectList(_sysAreaService.GetAllEnt(), "Id", "AreaDisplayName", item.SysAreaId);
     ViewBag.SysActionsId = new MultiSelectList(_sysActionService.GetAllEnt(), "Id", "ActionDisplayName",
                                                item.SysControllerSysActions != null
                                                    ? item.SysControllerSysActions.Where(a => !a.Deleted).Select(a => a.SysActionId) : null);
     return View(item);
 }
        public ActionResult Edit(Guid? id, SysController collection)
        {
            if (!ModelState.IsValid)
            {
                Edit(id);
                return View(collection);
            }

            if (id.HasValue)
            {
                //清除原有数据
                _sysControllerSysActionService.Delete(a => a.SysControllerId.Equals(id.Value) && !collection.SysActionsId.Contains(a.SysActionId));
            }

            _sysControllerService.Save(id, collection);

            if (collection.SysActionsId != null)
            {
                foreach (
                    var actionid in
                        collection.SysActionsId.Where(
                            actionid =>
                            !_sysControllerSysActionService.GetAll()
                                                           .Where(b => b.SysControllerId.Equals(id.Value))
                                                           .Select(b => b.SysActionId)
                                                           .Contains(actionid)))
                {
                    _sysControllerSysActionService.Save(null, new SysControllerSysAction
                                                           {
                                                               SysControllerId = collection.Id,
                                                               SysActionId = actionid
                                                           });
                }
            }

            _unitOfWork.Commit();

            return RedirectToAction("Index");
        }