示例#1
0
        public ActionResult Actions()
        {
            var           msg    = new JsonMessage();
            var           module = new Module();
            List <Module> ltsModuleItems;
            StringBuilder stbMessage;
            var           LstUserIds = Request["UserId"];
            var           LstRoleIds = Request["RoleId"];

            switch (DoAction)
            {
            case ActionType.Add:
                try
                {
                    UpdateModel(module);
                    var parent = _moduleDa.GetById(module.PrarentID ?? 0);
                    if (parent != null)
                    {
                        module.Level = parent.Level + 1;
                    }
                    else
                    {
                        module.Level = 1;
                    }
                    module.IsDelete = false;
                    _moduleDa.Add(module);
                    foreach (var rolemo in ConvertUtil.LsGuiId(LstRoleIds).Select(item => _moduleDa.GetByRoleId(item)))
                    {
                        module.aspnet_Roles.Add(rolemo);
                        if (rolemo.ActiveRoles.Any())
                        {
                            foreach (var roleM in rolemo.ActiveRoles.Select(roleActive => new Role_ModuleActive
                            {
                                ModuleId = module.ID,
                                RoleId = rolemo.RoleId,
                                Check = false,
                                ActiveRoleId = roleActive.Id,
                                Active = true
                            }))
                            {
                                module.Role_ModuleActive.Add(roleM);
                            }
                        }
                    }
                    foreach (var item in ConvertUtil.LsGuiId(LstRoleIds))
                    {
                        var user = _moduleDa.GetByUserId(item);
                        module.aspnet_Users.Add(user);
                        var firstOrDefault = user.aspnet_Roles.FirstOrDefault();
                        if (firstOrDefault != null && firstOrDefault.ActiveRoles.Any())
                        {
                            foreach (var userModuleActive in firstOrDefault.ActiveRoles.Select(moduleactive => new User_ModuleActive
                            {
                                ID = 1,
                                ModuleId = module.ID,
                                UserId = item,
                                ActiveRoleId = moduleactive.Id,
                                Active = true,
                                Check = 1
                            }))
                            {
                                module.User_ModuleActive.Add(userModuleActive);
                            }
                        }
                    }

                    _moduleDa.Save();
                    msg = new JsonMessage
                    {
                        Erros   = false,
                        ID      = module.ID.ToString(),
                        Message = string.Format("Đã thêm mới: <b>{0}</b>", Server.HtmlEncode(module.NameModule))
                    };
                }
                catch (Exception ex)
                {
                    LogHelper.Instance.LogError(GetType(), ex);
                }
                break;

            case ActionType.Edit:
                try
                {
                    module = _moduleDa.GetById(ArrId.FirstOrDefault());
                    UpdateModel(module);
                    var parent = _moduleDa.GetById(module.PrarentID ?? 0);
                    if (parent != null)
                    {
                        module.Level = parent.Level + 1;
                    }
                    else
                    {
                        module.Level = 1;
                    }
                    var listrole = ConvertUtil.LsGuiId(LstRoleIds);
                    foreach (var rolemo in listrole.Where(m => module.aspnet_Roles.All(t => t.RoleId != m)).Select(item => _moduleDa.GetByRoleId(item)))
                    {
                        module.aspnet_Roles.Add(rolemo);
                        if (rolemo.ActiveRoles.Any())
                        {
                            foreach (var roleM in rolemo.ActiveRoles.Select(roleActive => new Role_ModuleActive
                            {
                                ModuleId = module.ID,
                                RoleId = rolemo.RoleId,
                                Check = false,
                                ActiveRoleId = roleActive.Id,
                                Active = true
                            }))
                            {
                                module.Role_ModuleActive.Add(roleM);
                            }
                        }
                    }
                    var listuser = ConvertUtil.LsGuiId(LstUserIds);
                    foreach (var user in listuser.Where(m => module.aspnet_Users.All(t => t.UserId != m)).Select(item => _moduleDa.GetByUserId(item)))
                    {
                        module.aspnet_Users.Add(user);
                        var firstOrDefault = user.aspnet_Roles.FirstOrDefault();
                        if (firstOrDefault != null && firstOrDefault.ActiveRoles.Any())
                        {
                            foreach (var userModuleActive in firstOrDefault.ActiveRoles.Select(moduleactive => new User_ModuleActive
                            {
                                ID = 1,
                                ModuleId = module.ID,
                                UserId = user.UserId,
                                ActiveRoleId = moduleactive.Id,
                                Active = true,
                                Check = 1
                            }))
                            {
                                module.User_ModuleActive.Add(userModuleActive);
                            }
                        }
                    }
                    var list  = module.aspnet_Roles.Where(m => listrole.All(n => n != m.RoleId)).Select(m => m.RoleId).ToList();
                    var list1 = module.aspnet_Users.Where(m => listuser.All(n => n != m.UserId)).Select(m => m.UserId).ToList();
                    _moduleDa.Save();
                    if (list.Any() || list1.Any())
                    {
                        _moduleDa.DeleteAdminModuleUserRole(module.ID, string.Join(",", list1), string.Join(",", list));
                    }
                    msg = new JsonMessage
                    {
                        Erros   = false,
                        ID      = module.ID.ToString(),
                        Message = string.Format("Đã cập nhật chuyên mục: <b>{0}</b>", Server.HtmlEncode(module.NameModule))
                    };
                }
                catch (Exception ex)
                {
                    LogHelper.Instance.LogError(GetType(), ex);
                }
                break;


            case ActionType.Delete:
                ltsModuleItems = _moduleDa.GetListByArrID(ArrId);
                stbMessage     = new StringBuilder();
                foreach (var item in ltsModuleItems)
                {
                    item.IsDelete = true;
                    stbMessage.AppendFormat("Đã xóa chuyên mục <b>{0}</b>.<br />", Server.HtmlEncode(item.NameModule));
                }
                msg.ID = string.Join(",", ArrId);
                _moduleDa.Save();
                msg.Message = stbMessage.ToString();
                break;

            case ActionType.Show:
                ltsModuleItems = _moduleDa.GetListByArrID(ArrId).Where(o => o.IsShow != null && !o.IsShow.Value).ToList();     //Chỉ lấy những đối tượng ko được hiển thị
                stbMessage     = new StringBuilder();
                foreach (var item in ltsModuleItems)
                {
                    item.IsShow = true;
                    stbMessage.AppendFormat("Đã hiển thị chuyên mục <b>{0}</b>.<br />", Server.HtmlEncode(item.NameModule));
                }
                _moduleDa.Save();
                msg.ID      = string.Join(",", ltsModuleItems.Select(o => o.ID));
                msg.Message = stbMessage.ToString();
                break;

            case ActionType.Hide:
                ltsModuleItems = _moduleDa.GetListByArrID(ArrId).Where(o => o.IsShow != null && o.IsShow.Value).ToList();     //Chỉ lấy những đối tượng được hiển thị
                stbMessage     = new StringBuilder();
                foreach (var item in ltsModuleItems)
                {
                    item.IsShow = false;
                    stbMessage.AppendFormat("Đã ẩn chuyên mục <b>{0}</b>.<br />", Server.HtmlEncode(item.NameModule));
                }
                _moduleDa.Save();
                msg.ID      = string.Join(",", ltsModuleItems.Select(o => o.ID));
                msg.Message = stbMessage.ToString();
                break;

            case ActionType.Order:
                if (!string.IsNullOrEmpty(Request["OrderValues"]))
                {
                    var orderValues = Request["OrderValues"];
                    if (orderValues.Contains("|"))
                    {
                        foreach (var keyValue in orderValues.Split('|'))
                        {
                            if (keyValue.Contains("_"))
                            {
                                var tempCategory = _moduleDa.GetById(Convert.ToInt32(keyValue.Split('_')[0]));
                                tempCategory.Ord = Convert.ToInt32(keyValue.Split('_')[1]);
                                _moduleDa.Save();
                            }
                        }
                    }
                    msg.ID      = string.Join(",", orderValues);
                    msg.Message = "Đã cập nhật lại thứ tự chuyên mục";
                }
                break;
            }

            if (string.IsNullOrEmpty(msg.Message))
            {
                msg.Message = "Không có hành động nào được thực hiện.";
                msg.Erros   = true;
            }

            return(Json(msg, JsonRequestBehavior.AllowGet));
        }