private bool CreateExtendField(ExtendedFieldType fieldType)
        {
            MessageDisplay msgDisplay  = CreateMessageDisplay();
            ExtendedField  extendFiled = GetExtendFieldInfo(fieldType);

            extendFiled.Key = Guid.NewGuid().ToString();

            ExtendedFieldSettings settings = SettingManager.CloneSetttings <ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);

            settings.Version = Guid.NewGuid().ToString();

            foreach (ExtendedField field in AllSettings.Current.ExtendedFieldSettings.Fields)
            {
                if (string.Compare(extendFiled.Name, field.Name, true) == 0)
                {
                    msgDisplay.AddError("已经存在同名的扩展字段\"" + field.Name + "\",请更换名称");
                    break;
                }
            }

            if (msgDisplay.HasAnyError())
            {
                return(false);
            }

            settings.Fields.Add(extendFiled);

            SettingManager.SaveSettings(settings);
            return(true);
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (AllSettings.Current.BackendPermissions.Can(My, BackendPermissions.Action.Setting_ExtendedField) == false)
            {
                ShowError("没有权限删除扩展字段");
            }

            if (_Request.IsClick("delete"))
            {
                string key = Request.QueryString["key"];

                if (key != null)
                {
                    if (Field.IsPassport)
                    {
                        ShowError("您试图删除的是passport服务器端的扩展字段,这是不允许的");
                    }

                    //ExtendedField[] fields = AllSettings.Current.ExtendedFieldSettings.Fields.ToArray();

                    ExtendedFieldSettings settings = SettingManager.CloneSetttings <ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);

                    ExtendedFieldCollection fields = new ExtendedFieldCollection();

                    ExtendedField deletedField = null;
                    foreach (ExtendedField field in settings.Fields)
                    {
                        if (field.Key != key)
                        {
                            fields.Add(field);
                        }
                        else
                        {
                            deletedField = field;
                        }
                    }

                    settings.Fields = fields;

                    SettingManager.SaveSettings(settings);

                    if (deletedField != null)
                    {
                        UserBO.Instance.DeleteUserExtendFields(deletedField.Key);
                        UserBO.Instance.Server_UpdatePassportUserExtendFieldCache(fields);
                    }

                    Return("id", key);
                }
            }
        }
        private bool UpdateExtendField(ExtendedFieldType fieldType, string key)
        {
            MsgDisplayForSaveSettings = CreateMessageDisplay();
            ExtendedField extendFiled = GetExtendFieldInfo(fieldType);

            extendFiled.Key = key;

            ExtendedFieldSettings settings = SettingManager.CloneSetttings <ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);

            settings.Version = Guid.NewGuid().ToString();

            ExtendedFieldCollection fields = new ExtendedFieldCollection();

            ExtendedFieldDisplayType?oldDisplayType = null;

            foreach (ExtendedField field in settings.Fields)
            {
                if (field.Key == extendFiled.Key)
                {
                    fields.Add(extendFiled);
                    oldDisplayType = field.DisplayType;
                }
                else
                {
                    if (string.Compare(extendFiled.Name, field.Name, true) == 0)
                    {
                        MsgDisplayForSaveSettings.AddError("已经存在同名的扩展字段\"" + field.Name + "\",请更换名称");
                        break;
                    }
                    else
                    {
                        fields.Add(field);
                    }
                }
            }

            if (MsgDisplayForSaveSettings.HasAnyError())
            {
                return(false);
            }

            if (oldDisplayType != null && extendFiled.DisplayType != oldDisplayType.Value)
            {
                UserBO.Instance.UpdateUserExtendFieldPrivacy(extendFiled.Key, extendFiled.DisplayType);
            }

            settings.Fields = fields;
            SettingManager.SaveSettings(settings);
            return(true);
        }
        private void SaveList()
        {
            StringTable passportSorts   = new StringTable();
            StringTable passportEnables = new StringTable();

            string keys = _Request.Get("extendfieldEnable", Method.Post, string.Empty);

            List <string> enableKeys = StringUtil.Split2 <string>(keys);

            ExtendedFieldSettings fieldSetting = SettingManager.CloneSetttings <ExtendedFieldSettings>(AllSettings.Current.ExtendedFieldSettings);

            ExtendedFieldCollection fields = new ExtendedFieldCollection();

            foreach (ExtendedField field in fieldSetting.FieldsWithPassport)
            {
                int sortOrder = _Request.Get <int>(field.Key + "_sortOrder", Method.Post, 0);;
                if (field.IsPassport)
                {
                    passportSorts.Add(field.Key, sortOrder.ToString());
                    if (enableKeys.Contains(field.Key) == false)
                    {
                        passportEnables.Add(field.Key, "0");
                    }
                    //field.SortOrder = sortOrder;
                }
                else
                {
                    field.SortOrder = sortOrder;
                    fields.Add(field);
                }
            }

            fieldSetting.Fields        = fields;
            fieldSetting.PassportSorts = passportSorts;
            fieldSetting.IsEnables     = passportEnables;


            SettingManager.SaveSettings(fieldSetting);

            UserBO.Instance.RemoveAllUserCache();
        }