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);
        }
Beispiel #2
0
        public static ExtendedFieldSearchInfo Parse(StringTable values)
        {
            ExtendedFieldSearchInfo result = new ExtendedFieldSearchInfo();

            ExtendedField[] fileds = AllSettings.Current.ExtendedFieldSettings.FieldsWithPassport.ToArray();

            foreach (DictionaryEntry item in values)
            {
                if (item.Value == null || (string)item.Value == string.Empty)
                {
                    continue;
                }

                ExtendedField field = Array.Find <ExtendedField>(fileds, match => match.Key == (string)item.Key);

                if (field != null)
                {
                    ExtendedFieldType type = UserBO.Instance.GetExtendedFieldType(field.FieldTypeName);

                    if (type != null)
                    {
                        if (result.Items == null)
                        {
                            result.Items = new List <ExtendedFieldSearchInfoItem>();
                        }

                        result.Items.Add(new ExtendedFieldSearchInfoItem((string)item.Key, (string)item.Value, type.NeedExactMatch));
                    }
                }
            }

            return(result);
        }
        protected string IncludeExtendFiled(ThreadCateModelField field)
        {
            ExtendedFieldType type = UserBO.Instance.GetExtendedFieldType(field.FieldType);

            this.Include(this.HtmlTextWriter, new object[] { "src", type.FrontendControlSrc, "value", "", "field", field.ExtendedField });

            return(null);
        }
        protected string GetFieldTypeName(string fieldType)
        {
            ExtendedFieldType type = GetExtendedFieldType(fieldType);

            if (type == null)
            {
                return(string.Empty);
            }
            else
            {
                return(type.DisplayName);
            }
        }
        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 ExtendedField GetExtendFieldInfo(ExtendedFieldType fieldType)
        {
            ExtendedField extendFiled = new ExtendedField();

            extendFiled.FieldTypeName = fieldType.TypeName;
            extendFiled.Name          = _Request.Get("Name", Method.Post);
            extendFiled.Description   = _Request.Get("Description", Method.Post);
            extendFiled.IsRequired    = _Request.Get("IsRequired", Method.Post) == "True";
            extendFiled.IsHidden      = _Request.Get("IsHidden", Method.Post) == "True";
            extendFiled.Searchable    = _Request.Get("Searchable", Method.Post) == "True";
            extendFiled.DisplayType   = _Request.Get <ExtendedFieldDisplayType>("DisplayType", Method.Post, ExtendedFieldDisplayType.AllVisible);
            extendFiled.SortOrder     = _Request.Get <int>("SortOrder", Method.Post, 0);

            extendFiled.Settings = fieldType.LoadSettingsFromRequest();

            return(extendFiled);
        }
        protected void SaveExtendField()
        {
            string key = _Request.Get("Key", Method.Get);

            if (key == null)
            {
                string fieldTypeName = _Request.Get("type");

                if (fieldTypeName != null)
                {
                    ExtendedFieldType fieldType = UserBO.Instance.GetExtendedFieldType(fieldTypeName);

                    if (fieldType != null)
                    {
                        if (CreateExtendField(fieldType) == false)
                        {
                            return;
                        }
                    }
                }
            }
            else
            {
                ExtendedFieldType fieldType = UserBO.Instance.GetExtendedFieldType(CurrentField.FieldTypeName);

                if (fieldType != null)
                {
                    if (UpdateExtendField(fieldType, key) == false)
                    {
                        return;
                    }
                }
            }

            UserBO.Instance.Server_UpdatePassportUserExtendFieldCache(AllSettings.Current.ExtendedFieldSettings.Fields);

            UserBO.Instance.RemoveAllUserCache();
        }
        protected void Save()
        {
            MessageDisplay msgDisplay = CreateMessageDisplay("modelname");

            string fieldName = _Request.Get("fieldName", Method.Post, string.Empty);
            string fieldType;

            if (IsEdit)
            {
                fieldType = Field.FieldType;
            }
            else
            {
                fieldType = _Request.Get("fieldType", Method.Post, string.Empty);
            }


            ExtendedFieldType ftype = UserBO.Instance.GetExtendedFieldType(fieldType);


            if (ftype == null)
            {
                msgDisplay.AddError("请选择字段类型");
                return;
            }

            int    sortOrder      = _Request.Get <int>("SortOrder", Method.Post, 0);
            bool   enable         = _Request.Get <int>("Enable", Method.Post, 1) == 1;
            bool   search         = _Request.Get <int>("Search", Method.Post, 1) == 1;
            bool   advancedSearch = _Request.Get <int>("AdvancedSearch", Method.Post, 1) == 1;
            bool   displayInList  = _Request.Get <int>("DisplayInList", Method.Post, 1) == 1;
            bool   mustFilled     = _Request.Get <int>("MustFilled", Method.Post, 1) == 1;
            string description    = _Request.Get("Description", Method.Post, string.Empty);

            bool success;

            try
            {
                if (IsEdit == false)
                {
                    success = ThreadCateBO.Instance.CreateThreadCateModelField(My, ModelID, fieldName, enable, sortOrder, ftype.TypeName, ftype.LoadSettingsFromRequest().ToString()
                                                                               , search, advancedSearch, displayInList, mustFilled, description);
                }
                else
                {
                    success = ThreadCateBO.Instance.UpdateThreadCateModelField(My, FieldID, fieldName, enable, sortOrder, ftype.LoadSettingsFromRequest().ToString()
                                                                               , search, advancedSearch, displayInList, mustFilled, description);
                }
            }
            catch (Exception ex)
            {
                msgDisplay.AddError(ex.Message);
                return;
            }

            if (success == false)
            {
                CatchError <ErrorInfo>(delegate(ErrorInfo error)
                {
                    msgDisplay.AddError(error);
                });
            }
            else
            {
                Return(true);
            }
        }