Beispiel #1
0
        public ActionResult Update(string key, string json, string code)
        {
            try
            {
                if (key == Keyapi)
                {
                    var moduleItem = JsonConvert.DeserializeObject <ModuleUpdateItem>(json);
                    var obj        = _da.GetById(moduleItem.ID);
                    var lstActive  = _da.GetListActive();
                    var lsGuiId1   = GetListRole(code);
                    var listRole   = lsGuiId1.Select(c => c.RoleId).ToList();

                    obj.DN_Roles.Clear();
                    obj.DN_Roles = _da.GetListRolesbyListGuid(listRole);
                    while (obj.DN_Role_ModuleActive.Count > 0)
                    {
                        var item = obj.DN_Role_ModuleActive.FirstOrDefault();
                        _da.Delete(item);
                    }
                    obj.DN_Role_ModuleActive.Clear();
                    foreach (var activeitem in obj.DN_Roles.SelectMany(item => lstActive.Select(active => new DN_Role_ModuleActive
                    {
                        ModuleId = obj.ID,
                        RoleId = item.RoleId,
                        ActiveId = active.ID,
                        Active = true,
                        Check = false,
                        AgencyId = Agencyid()
                    })))
                    {
                        obj.DN_Role_ModuleActive.Add(activeitem);
                    }

                    // quyền cho nhân viên
                    var lsGuiId2 = GetListUser(code);
                    var lstg     = lsGuiId2.Select(c => c.UserId).ToList();
                    obj.DN_Users.Clear();
                    obj.DN_Users = _da.GetListUserbyListGuid(lstg);
                    while (obj.DN_User_ModuleActive.Count > 0)
                    {
                        var item = obj.DN_User_ModuleActive.FirstOrDefault();
                        _da.Delete(item);
                    }
                    obj.DN_User_ModuleActive.Clear();
                    foreach (var activeitem in obj.DN_Users.SelectMany(item => lstActive.Select(active => new DN_User_ModuleActive
                    {
                        ModuleId = obj.ID,
                        UserId = item.UserId,
                        ActiveId = active.ID,
                        Active = true,
                        Check = 1,
                        AgencyId = Agencyid()
                    })))
                    {
                        obj.DN_User_ModuleActive.Add(activeitem);
                    }
                    _da.Save();
                    //if (list.Any() || list1.Any())
                    //    _da.DeleteModuleUserRole(moduleItem.ID, string.Join(",", list1), string.Join(",", list));
                    return(Json(1, JsonRequestBehavior.AllowGet));
                }
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
        }