Example #1
0
 /// <summary>
 /// 获取枚举类型中的所有枚举项
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 public static IList<EnumItem> GetEnumItems(System.Type t)
 {
     try
     {
         List<EnumItem> returnlist = new List<EnumItem>();
         Array getEnumLists = Enum.GetValues(t);
         if (getEnumLists != null)
         {
             if (getEnumLists.Length > 0)
             {
                 for (int i = 0; i < getEnumLists.Length; i++)
                 {
                     EnumItem entity = new EnumItem();
                     string getEnumName = GetDescription(t, getEnumLists.GetValue(i));
                     entity.Name = getEnumName;
                     string getEnumValue = Convert.ToInt32(getEnumLists.GetValue(i)).ToString();
                     entity.Value = getEnumValue;
                     returnlist.Add(entity);
                 }
             }
         }
         return returnlist;
     }
     catch (Exception)
     {
         throw;
     }
 }
        // When set up for an argument
        public override void SetupArgument(TypeHandlerAttribute attr, ArgumentInfo arginfo)
        {
            defaultvalue = new EnumItem("0", "0");
            base.SetupArgument(attr, arginfo);

            // Create enum list reference
            list = CreateEnumList();

            // Add default value
            list.Insert(0, defaultvalue);
        }
 private static void ApplyDefault(OpenApiSchema schema, object defaultValue)
 {
     if (defaultValue.GetType().IsEnum)
     {
         schema.Default = new OpenApiString(EnumItem.Format(defaultValue));
     }
     else
     {
         schema.Default = new OpenApiString(defaultValue.ToString());
     }
 }
Example #4
0
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            EnumItem enumItem = value as EnumItem;

            if (enumItem == null)
            {
                return(0);
            }
            var enumValue = Enum.Parse(enumItem.Type, enumItem.Name);

            return(enumValue);
        }
        private void BindNode()
        {
            m_BindState = false;

            CBB_LeftParameterType.Items.Clear();
            CBB_RightParameterType.Items.Clear();

            CBB_RightParameter.Items.Clear();
            CBB_CompareType.Items.Clear();

            CustomEnum variableCustomEnum = MainForm.Instance.NodeTemplate.FindEnum("VariableType");

            for (int i = 0; i < variableCustomEnum.Enums.Count; i++)
            {
                EnumItem enumItem = variableCustomEnum.Enums[i];
                CBB_LeftParameterType.Items.Add(enumItem.EnumStr);
                CBB_RightParameterType.Items.Add(enumItem.EnumStr);
            }

            //绑定左边参数类型
            FieldDesigner     leftFieldDesigner     = m_Node.FindFieldByName("LeftType");
            EnumFieldDesigner leftEnumFieldDesigner = leftFieldDesigner.Field as EnumFieldDesigner;

            CBB_LeftParameterType.SelectedIndex = leftEnumFieldDesigner.ValueIndex;

            //绑定右边参数类型
            FieldDesigner     rightFieldDesigner     = m_Node.FindFieldByName("RightType");
            EnumFieldDesigner rightEnumFieldDesigner = rightFieldDesigner.Field as EnumFieldDesigner;

            CBB_RightParameterType.SelectedIndex = rightEnumFieldDesigner.ValueIndex;

            //绑定左边参数名
            BindLeftParameter(leftEnumFieldDesigner.Value);

            //绑定右边参数
            BindRightParameter(rightEnumFieldDesigner.Value);

            //绑定比较类型
            CustomEnum compareCustomEnum = MainForm.Instance.NodeTemplate.FindEnum("CompareType");

            for (int i = 0; i < compareCustomEnum.Enums.Count; i++)
            {
                EnumItem enumItem = compareCustomEnum.Enums[i];
                CBB_CompareType.Items.Add(enumItem.EnumStr);
            }
            FieldDesigner     compareTypeFieldDesigner = m_Node.FindFieldByName("CompareType");
            EnumFieldDesigner compareEnumFieldDesigner = compareTypeFieldDesigner.Field as EnumFieldDesigner;

            CBB_CompareType.SelectedIndex = compareEnumFieldDesigner.ValueIndex;

            m_BindState = true;
        }
        public CodeWriter GetValue( EnumItem item )
        {
            var writer = new CodeWriter();

            writer.AppendText( ConvertName( item.Name ) );
            writer.Indent = 0;
            writer.Append( " = " );
            writer.AppendText( item.Value );
            writer.Indent = 0;
            writer.Append( "," );

            return writer;
        }
 public ServerMessagesViewModel()
 {
     if (WpfUtil.IsInDesignMode)
     {
         return;
     }
     foreach (var messageType in EnumItem <ServerMessageType> .GetEnumItems())
     {
         _count.Add(messageType.Value, new MessageTypeItem <ServerMessageType>(messageType, ServerMessageViewModel.GetIcon, ServerMessageViewModel.GetIconFill, RefreshQueryResults));
     }
     Init();
     this.Add = new DelegateCommand(() => {
         new ServerMessageViewModel(new ServerMessageData {
             Id          = Guid.NewGuid(),
             MessageType = ServerMessageType.Info.GetName(),
             Provider    = "admin",
             Content     = string.Empty,
             Timestamp   = DateTime.MinValue
         }).Edit.Execute(FormType.Add);
     });
     this.ClearKeyword = new DelegateCommand(() => {
         this.Keyword = string.Empty;
     });
     this.Clear = new DelegateCommand(() => {
         this.ShowDialog(new DialogWindowViewModel(message: "确定清空吗?", title: "确认", onYes: () => {
             VirtualRoot.Execute(new ClearServerMessages());
         }));
     });
     VirtualRoot.BuildEventPath <ServerMessagesClearedEvent>("清空了本地存储的服务器消息后刷新Vm内存", LogEnum.DevConsole,
                                                             action: message => {
         UIThread.Execute(() => {
             Init();
         });
     });
     VirtualRoot.BuildEventPath <NewServerMessageLoadedEvent>("从服务器加载了新消息后刷新Vm内存", LogEnum.DevConsole,
                                                              action: message => {
         UIThread.Execute(() => {
             foreach (var item in message.Data)
             {
                 var vm = new ServerMessageViewModel(item);
                 _serverMessageVms.Insert(0, vm);
                 if (IsSatisfyQuery(vm))
                 {
                     _queyResults.Insert(0, vm);
                 }
             }
             OnPropertyChanged(nameof(IsNoRecord));
         });
     });
     _serverMessageVms = new ObservableCollection <ServerMessageViewModel>(NTMinerRoot.Instance.ServerMessageSet.Select(a => new ServerMessageViewModel(a)));
 }
Example #8
0
        public static LinkedList <EnumItem <Corpus.Tag.NT> > roleTag(LinkedList <Vertex> vertexList, WordNet wordNetAll)
        {
            LinkedList <EnumItem <Corpus.Tag.NT> > tagList = new LinkedList <EnumItem <Corpus.Tag.NT> >();

            foreach (Vertex vertex in vertexList)
            {
                // 构成更长的
                Nature nature = vertex.guessNature();
                switch (nature)
                {
                case Nature.nz:
                {
                    if (vertex.getAttribute().totalFrequency <= 1000)
                    {
                        tagList.AddLast(new EnumItem <Corpus.Tag.NT>(Corpus.Tag.NT.F, 1000));
                    }
                    else
                    {
                        break;
                    }
                }
                    continue;

                case Nature.ni:
                case Nature.nic:
                case Nature.nis:
                case Nature.nit:
                {
                    EnumItem <Corpus.Tag.NT> ntEnumItem = new EnumItem <Corpus.Tag.NT>(Corpus.Tag.NT.K, 1000);
                    ntEnumItem.addLabel(Corpus.Tag.NT.D, 1000);
                    tagList.AddLast(ntEnumItem);
                }
                    continue;

                case Nature.m:
                {
                    EnumItem <Corpus.Tag.NT> ntEnumItem = new EnumItem <Corpus.Tag.NT>(Corpus.Tag.NT.M, 1000);
                    tagList.AddLast(ntEnumItem);
                }
                    continue;
                }

                EnumItem <Corpus.Tag.NT> NTEnumItem = OrganizationDictionary.dictionary.get(vertex.word);  // 此处用等效词,更加精准
                if (NTEnumItem == null)
                {
                    NTEnumItem = new EnumItem <Corpus.Tag.NT>(Corpus.Tag.NT.Z, OrganizationDictionary.transformMatrixDictionary.getTotalFrequency(Corpus.Tag.NT.Z));
                }
                tagList.AddLast(NTEnumItem);
            }
            return(tagList);
        }
Example #9
0
        //设置多选下拉列表_公司和事业部
        private void SetMulComboCompany()
        {
            //定义List<EnumItem>用于存储下拉列表枚举值;
            List <EnumItem> list = new List <EnumItem>();
            //外贸公司
            EnumItem item1 = new EnumItem();

            item1.Caption = new LocaleValue("外贸公司", base.Context.UserLocale.LCID);
            item1.EnumId  = "外贸公司";
            item1.Value   = "外贸公司";
            list.Add(item1);
            //知客
            EnumItem item2 = new EnumItem();

            item2.Caption = new LocaleValue("知客", base.Context.UserLocale.LCID);
            item2.EnumId  = "知客";
            item2.Value   = "知客";
            list.Add(item2);
            //千源
            EnumItem item3 = new EnumItem();

            item3.Caption = new LocaleValue("千源", base.Context.UserLocale.LCID);
            item3.EnumId  = "千源";
            item3.Value   = "千源";
            list.Add(item3);
            string sql = string.Format(@"   SELECT DISTINCT
	                                                DEP_L.FNAME
                                                FROM T_BD_DEPARTMENT DEP
                                                LEFT JOIN T_BD_DEPARTMENT_L DEP_L
                                                ON DEP.FDEPTID = DEP_L.FDEPTID AND DEP_L.FLOCALEID = '2052'
                                                WHERE DEP.FDOCUMENTSTATUS = 'C' AND DEP.FFORBIDSTATUS = 'A' AND DEP_L.FNAME LIKE '%事业部%'
                                                ORDER BY DEP_L.FNAME
                                                ");
            DynamicObjectCollection result = DBUtils.ExecuteDynamicObject(this.Context, sql);

            if (result != null && result.Count > 0)
            {
                foreach (DynamicObject obj in result)
                {
                    string   name = Convert.ToString(obj["FNAME"]);
                    EnumItem item = new EnumItem();
                    item.Caption = new LocaleValue(name, base.Context.UserLocale.LCID);
                    item.EnumId  = string.Format("{0}", name);
                    item.Value   = string.Format("{0}", name);
                    list.Add(item);
                }
            }
            //SetComboItems绑定值
            this.View.GetControl <ComboFieldEditor>("FCompany_Filter").SetComboItems(list);
            this.View.Model.SetValue("FCompany_Filter", "外贸公司");
        }
Example #10
0
        public static LinkedList <EnumItem <Corpus.Tag.NS> > roleTag(LinkedList <Vertex> vertexList, WordNet wordNetAll)
        {
            LinkedList <EnumItem <Corpus.Tag.NS> > tagList = new LinkedList <EnumItem <Corpus.Tag.NS> >();

            LinkedList <Vertex> .Enumerator listIterator = vertexList.GetEnumerator();
            //        int line = 0;
            while (listIterator.MoveNext())
            {
                Vertex vertex = listIterator.Current;
                // 构成更长的
                //            if (Nature.ns == vertex.getNature() && vertex.getAttribute().totalFrequency <= 1000)
                //            {
                //                String value = vertex.realWord;
                //                int longestSuffixLength = PlaceSuffixDictionary.dictionary.getLongestSuffixLength(value);
                //                int wordLength = value.length() - longestSuffixLength;
                //                if (longestSuffixLength != 0 && wordLength != 0)
                //                {
                //                    listIterator.remove();
                //                    for (int l = 0, tag = NS.D.ordinal(); l < wordLength; ++l, ++tag)
                //                    {
                //                        listIterator.add(wordNetAll.getFirst(line + l));
                //                        tagList.add(new EnumItem<>(NS.values()[tag], 1000));
                //                    }
                //                    listIterator.add(wordNetAll.get(line + wordLength, longestSuffixLength));
                //                    tagList.add(new EnumItem<>(NS.H, 1000));
                //                    line += vertex.realWord.length();
                //                    continue;
                //                }
                //            }
                if (Nature.ns == vertex.getNature() && vertex.getAttribute().totalFrequency <= 1000)
                {
                    if (vertex.realWord.Length < 3)               // 二字地名,认为其可以再接一个后缀或前缀
                    {
                        tagList.AddLast(new EnumItem <Corpus.Tag.NS>(Corpus.Tag.NS.H, (int)Corpus.Tag.NS.G));
                    }
                    else
                    {
                        tagList.AddLast(new EnumItem <Corpus.Tag.NS>(Corpus.Tag.NS.G));        // 否则只可以再加后缀
                    }
                    continue;
                }
                EnumItem <Corpus.Tag.NS> NSEnumItem = PlaceDictionary.dictionary.get(vertex.word);  // 此处用等效词,更加精准
                if (NSEnumItem == null)
                {
                    NSEnumItem = new EnumItem <Corpus.Tag.NS>(Corpus.Tag.NS.Z, PlaceDictionary.transformMatrixDictionary.getTotalFrequency(Corpus.Tag.NS.Z));
                }
                tagList.AddLast(NSEnumItem);
                //            line += vertex.realWord.length();
            }
            return(tagList);
        }
        public void Apply(OpenApiSchema schema, SchemaFilterContext context)
        {
            if (!TypeHelper.IsSerializeAttribute(context.Type) &&
                !TypeHelper.IsEnumerable(context.Type) &&
                context.Type != typeof(object))
            {
                //if (context.Type.Name == "UserReg")
                //{ }

                schema.Type = "object";
                schema.Properties.Clear();
                schema.AdditionalPropertiesAllowed = true;

                OpenApiSchema baseSchema = GetBaseSchema(context);
                if (baseSchema != null)
                {
                    schema.AllOf = new List <OpenApiSchema> {
                        baseSchema
                    };
                }

                if (TypeHelper.IsBaseType(context.Type, typeof(DBItem)))
                {
                    var table = DBTable.GetTableAttributeInherit(context.Type);
                    if (table != null)
                    {
                        ApplyTable(schema, context, table);
                        return;
                    }
                }
                ApplyObject(schema, context);
            }
            else if (context.Type.IsEnum)
            {
                var items = EnumItem.GetEnumItems(context.Type);

                var namesArray = new OpenApiArray();
                namesArray.AddRange(items.Select(p => new OpenApiString(p.Name)));
                schema.Extensions.Add("x-enumNames", namesArray);

                var textArray = new OpenApiArray();
                textArray.AddRange(items.Select(p => new OpenApiString(p.Text)));
                schema.Extensions.Add("x-enumMembers", textArray);

                if (context.Type.GetCustomAttribute <FlagsAttribute>() != null)
                {
                    schema.Extensions.Add("x-flags", new OpenApiInteger(Enum.GetValues(context.Type).Cast <int>().First()));
                }
            }
        }
Example #12
0
        private void CreateEnumItems(EnumControl control, IEnumerable newItems)
        {
            foreach (EnumItemElement newItem in newItems)
            {
                var item = new EnumItem();
                item.DataContext = newItem;

                SetBinding(item, EnumItem.ItemNameProperty, "Name");
                SetBinding(item, EnumItem.LabelProperty, "Label");
                //SetBinding(item, EnumItem.ValueProperty, "Value");

                control.Items.Add(item);
            }
        }
Example #13
0
        public override DataItem CreateData(UndoRedoManager undoRedo)
        {
            var item = new EnumItem(this, undoRedo);

            item.Value = Default;

            foreach (var att in Attributes)
            {
                var attItem = att.CreateData(undoRedo);
                item.Attributes.Add(attItem);
            }

            return(item);
        }
Example #14
0
        public static IEnumItem[] GetEnumItems <T>()
        {
            var items  = Enum.GetValues(typeof(T));
            var result = new List <IEnumItem>();

            foreach (var item in items)
            {
                var vt = new EnumItem {
                    Value = (int)item, Text = item.ToString()
                };
                result.Add(vt);
            }
            return(result.ToArray());
        }
        private void dyLoadLeaveType()
        {
            string FDocumentStatus = CZ_GetCommonField("DocumentStatus");

            if (FDocumentStatus == "Z" || FDocumentStatus == "A" || FDocumentStatus == "D")
            {
                //获取请假类别
                List <EnumItem> list = new List <EnumItem>();
                string          sql  = @"select FCAPTION,fi.FENUMID,FVALUE from T_META_FORMENUMITEM fi
                inner join T_META_FORMENUMITEM_L fil on fil.FENUMID=fi.FENUMID
                inner join T_META_FORMENUM_L fl on fl.FID=fi.FID
                where fl.FNAME='OA请假类别'";
                var             obj  = CZDB_GetData(sql);

                sql = "EXEC proc_czly_GetSalesmanIdByUserId @FUserId='" + this.Context.UserId.ToString() + "'";
                var Smans = CZDB_GetData(sql);
                if (Smans.Count > 0)
                {
                    foreach (var row in obj)
                    {
                        if (row["FVALUE"].ToString() == "3")
                        {
                            continue;
                        }
                        EnumItem item = new EnumItem();
                        item.Caption = new Kingdee.BOS.LocaleValue(row["FCAPTION"].ToString());
                        item.EnumId  = row["FENUMID"].ToString();
                        item.Value   = row["FVALUE"].ToString();
                        list.Add(item);
                    }
                }
                else
                {
                    foreach (var row in obj)
                    {
                        if (row["FVALUE"].ToString() == "20")
                        {
                            continue;
                        }
                        EnumItem item = new EnumItem();
                        item.Caption = new Kingdee.BOS.LocaleValue(row["FCAPTION"].ToString());
                        item.EnumId  = row["FENUMID"].ToString();
                        item.Value   = row["FVALUE"].ToString();
                        list.Add(item);
                    }
                }
                //this.View.ShowMessage(list.Count.ToString());
                this.View.GetControl <ComboFieldEditor>("FLeaveType").SetComboItems(list);
            }
        }
Example #16
0
        public override void SetValue(object value)
        {
            this.value = null;

            // Input null?
            if (value == null)
            {
                this.value = new EnumItem("", "");
            }
            else
            {
                // No match found yet?
                if (this.value == null)
                {
                    // First try to match the value against the enum values
                    foreach (EnumItem item in list)
                    {
                        // Matching value?
                        if (item.Value == value.ToString())
                        {
                            // Set this value
                            this.value = item;
                        }
                    }
                }

                // No match found yet?
                if (this.value == null)
                {
                    // Try to match against the titles
                    foreach (EnumItem item in list)
                    {
                        // Matching value?
                        if (item.Title.ToLowerInvariant() == value.ToString().ToLowerInvariant())
                        {
                            // Set this value
                            this.value = item;
                        }
                    }
                }

                // Still no match found?
                if (this.value == null)
                {
                    // Make a dummy value
                    this.value = new EnumItem(value.ToString(), value.ToString());
                }
            }
        }
Example #17
0
        // When set up for a universal field
        public override void SetupField(TypeHandlerAttribute attr, UniversalFieldInfo fieldinfo)
        {
            defaultvalue = (fieldinfo != null ? new EnumItem(fieldinfo.Default.ToString(), fieldinfo.Default.ToString()) : new EnumItem("0", "0")); //mxd
            base.SetupField(attr, fieldinfo);

            // Keep enum list reference
            if (fieldinfo != null)
            {
                list = fieldinfo.Enum;
            }
            else
            {
                list = new EnumList();
            }
        }
Example #18
0
        public static EnumItem <T> GetEnum <T>(this Type enumType, int value) where T : Attribute
        {
            EnumItem <T> result = null;
            var          list   = GetEnumListItem <T>(enumType);

            foreach (var item in list)
            {
                if (item.Value == value)
                {
                    result = item;
                    break;
                }
            }
            return(result);
        }
        /// <summary>
        /// 获取枚举的相关信息
        /// </summary>
        /// <param name="e">枚举的类型</param>
        /// <returns></returns>
        public static List <EnumItem> GetEnumItems(Type e)
        {
            List <EnumItem> itemList = new List <EnumItem>();

            foreach (Enum v in Enum.GetValues(e))
            {
                EnumItem item = v.GetBaseDescription();
                item.EnumKey   = Convert.ToInt32(v);
                item.EnumValue = v.ToString();

                itemList.Add(item);
            }

            return(itemList);
        }
Example #20
0
        public static EnumItem GetEnum(this Type enumType, string nameOrDescript)
        {
            EnumItem result = null;
            var      list   = GetEnumListItem(enumType);

            foreach (var item in list)
            {
                if (item.Name == nameOrDescript || item.Description == nameOrDescript)
                {
                    result = item;
                    break;
                }
            }
            return(result);
        }
Example #21
0
        public static T DescriptionToEnum <T>(this string desStr)
        {
            T enumT = default(T);
            IList <EnumItem> items = EnumExtensions.ToListEnumItem <T>();
            EnumItem         item  = items.Where(e => e.EnumDescript == desStr).FirstOrDefault();

            if (item != null && !string.IsNullOrEmpty(item.EnumDescript))
            {
                if (Enum.IsDefined(typeof(T), item.EnumKey))
                {
                    enumT = (T)Enum.Parse(typeof(T), item.EnumKey);
                }
            }
            return(enumT);
        }
        private void CBB_CompareType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!m_BindState)
            {
                return;
            }

            CustomEnum compareCustomEnum = MainForm.Instance.NodeTemplate.FindEnum("CompareType");
            EnumItem   enumItem          = compareCustomEnum.FindEnum(CBB_CompareType.Text.Trim());

            FieldDesigner     compareFieldDesigner     = m_Node.FindFieldByName("CompareType");
            EnumFieldDesigner compareEnumFieldDesigner = compareFieldDesigner.Field as EnumFieldDesigner;

            compareEnumFieldDesigner.Value = enumItem.EnumStr;
        }
Example #23
0
        public static EnumItem GetEnum(this Type enumType, int value)
        {
            EnumItem result = null;
            var      list   = GetEnumListItem(enumType);

            foreach (var item in list)
            {
                if (item.Value == value)
                {
                    result = item;
                    break;
                }
            }
            return(result);
        }
Example #24
0
 private MinerClientsViewModel()
 {
     this._mineStatusEnumItem = this.MineStatusEnumItems.FirstOrDefault(a => a.Value == MineStatus.All);
     this._mainCoin           = CoinViewModel.PleaseSelect;
     this._dualCoin           = CoinViewModel.PleaseSelect;
     this._selectedMineWork   = MineWorkViewModel.PleaseSelect;
     this._selectedMinerGroup = MinerGroupViewModel.PleaseSelect;
     this._mainCoinPool       = _mainCoin.OptionPools.First();
     this._dualCoinPool       = _dualCoin.OptionPools.First();
     this._mainCoinWallet     = WalletViewModel.PleaseSelect;
     this._dualCoinWallet     = WalletViewModel.PleaseSelect;
     this.PageUp = new DelegateCommand(() => {
         this.MinerClientPageIndex = this.MinerClientPageIndex - 1;
     });
     this.PageDown = new DelegateCommand(() => {
         this.MinerClientPageIndex = this.MinerClientPageIndex + 1;
     });
     this.PageFirst = new DelegateCommand(() => {
         this.MinerClientPageIndex = 1;
     });
     this.PageLast = new DelegateCommand(() => {
         this.MinerClientPageIndex = MinerClientPageCount;
     });
     this.PageRefresh = new DelegateCommand(() => {
         QueryMinerClients();
     });
     this.ManageCoin = new DelegateCommand <CoinViewModel>((coinVm) => {
         CoinPageViewModel.Current.CurrentCoin = coinVm;
         CoinPage.ShowWindow();
     });
     this.ManagePool = new DelegateCommand <CoinViewModel>((coinVm) => {
         this.ManageCoin.Execute(coinVm);
         CoinPageViewModel.Current.SwitchToPoolTab();
     });
     this.ManageWallet = new DelegateCommand <CoinViewModel>((coinVm) => {
         this.ManageCoin.Execute(coinVm);
         CoinPageViewModel.Current.SwitchToWalletTab();
     });
     System.Timers.Timer t = new System.Timers.Timer(50);
     t.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) => {
         if (this._logoRotateTransformAngle > 3600000)
         {
             this._logoRotateTransformAngle = 0;
         }
         this.LogoRotateTransformAngle += 50;
     };
     t.Start();
 }
Example #25
0
        static Dictionary<long, EnumItem> createEnumMap(Type t)
        {
            Dictionary<long, EnumItem> _map = new Dictionary<long, EnumItem>();
            FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Static);

            foreach (FieldInfo f in fields)
            {
                long v = Convert.ToInt64(f.GetValue(null));
                DescriptionAttribute[] ds = (DescriptionAttribute[])f.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (ds.Length > 0)
                {
                    _map[v] = new EnumItem { Value = v, Description = ds[0].Description };
                }
            }
            return _map;
        }
Example #26
0
        public static List <EnumItem> GetList(Type type)
        {
            List <EnumItem> arraylist = new List <EnumItem>();

            var values = Enum.GetValues(type);

            foreach (Enum v in values)
            {
                EnumItem item = new EnumItem();
                item.Text  = GetDescription(v);
                item.Value = Convert.ToInt32(v).ToString();
                arraylist.Add(item);
            }

            return(arraylist);
        }
Example #27
0
    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {
        _editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
        ListBox listBox = new ListBox();

        listBox.DisplayMember   = "Name";   // EnumItem 'Name' property
        listBox.IntegralHeight  = true;
        listBox.SelectionMode   = SelectionMode.One;
        listBox.MouseClick     += OnListBoxMouseClick;
        listBox.KeyDown        += OnListBoxKeyDown;
        listBox.PreviewKeyDown += OnListBoxPreviewKeyDown;
        Type enumType = value.GetType();

        if (!enumType.IsEnum)
        {
            throw new InvalidOperationException();
        }
        foreach (FieldInfo fi in enumType.GetFields(BindingFlags.Public | BindingFlags.Static))
        {
            EnumItem item = new EnumItem();
            item.Value = fi.GetValue(null);
            object[] atts = fi.GetCustomAttributes(typeof(DescriptionAttribute), true);
            if (atts != null && atts.Length > 0)
            {
                item.Name = ((DescriptionAttribute)atts[0]).Description;
            }
            else
            {
                item.Name = fi.Name;
            }
            int index = listBox.Items.Add(item);
            if (fi.Name == value.ToString())
            {
                listBox.SetSelected(index, true);
            }
        }
        _cancel = false;
        _editorService.DropDownControl(listBox);
        if (_cancel || listBox.SelectedIndices.Count == 0)
        {
            return(value);
        }
        return(((EnumItem)listBox.SelectedItem).Value);
    }
Example #28
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
            {
                return(null);
            }
            var list = parameter as List <EnumItem>;

            if (list != null)
            {
                EnumItem temp = list.FirstOrDefault(e => e.Name == value.ToString());
                if (temp != null)
                {
                    temp.IsSelected = true;
                    return(temp);
                }
            }
            return(null);
        }
        /// <summary>
        /// 生成代码文本
        /// </summary>
        /// <param name="enumInfo">枚举信息</param>
        /// <param name="namespacePfx">命名空间前辍</param>
        /// <returns>枚举名</returns>
        public string BuilderCodeText(EnumInfo enumInfo, string namespacePfx)
        {
            string name = $"{enumInfo.Code.FristUpper()}Enum";

            if (generatorNames.Contains(name))
            {
                return(name);
            }

            StringBuilder itemCode = new StringBuilder();

            for (int i = 0; i < enumInfo.Items.Length; i++)
            {
                EnumItem enumItem = enumInfo.Items[i];
                itemCode.Append(ItemTemplate
                                .Replace("|Description|", enumItem.Desc)
                                .Replace("|CODE|", enumItem.Code)
                                .Replace("|VALUE|", enumItem.Value.ToString()));

                if (i == enumInfo.Items.Length - 1)
                {
                    continue;
                }

                itemCode.AppendLine();
                itemCode.AppendLine();
            }

            string desc     = string.IsNullOrWhiteSpace(enumInfo.Desc) ? name : enumInfo.Desc;
            string codeText = ClassTemplate
                              .Replace("|NamespacePfx|", namespacePfx)
                              .Replace("|Description|", desc)
                              .Replace("|Name|", name)
                              .Replace("|Item|", itemCode.ToString());

            FOLDER_ROOT.CreateNotExistsDirectory();

            $"{FOLDER_ROOT}{name}.cs".WriteFileContent(codeText);

            generatorNames.Add(name);

            return(name);
        }
Example #30
0
        /// <summary>
        ///     获取枚举项
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static List <EnumItem> GetEnumItems(this Type type)
        {
            if (!type.IsEnum)
            {
                throw new ArgumentException($"类型:{type.FullName}不是有效的枚举类型。");
            }

            var result = new List <EnumItem>();

            foreach (var item in Enum.GetValues(type))
            {
                var tmp = new EnumItem();
                tmp.Value = (int)item;
                tmp.Name  = Enum.GetName(type, item);

                result.Add(tmp);
            }
            return(result);
        }
Example #31
0
        public static IEnumItem GetEnumItem(Type enumType, Enum item)
        {
            var name = item.ToString();

            var mi          = enumType.GetMember(name).First();
            var dtAttribute = mi.GetCustomAttributes(typeof(DisplayTextAttribute), false).FirstOrDefault();

            var text = name;

            if (dtAttribute != null)
            {
                text = (dtAttribute as DisplayTextAttribute).DisplayText;
            }
            var enumItem = new EnumItem {
                Value = Convert.ToInt32(item), Name = item.ToString(), Text = text
            };

            return(enumItem);
        }
Example #32
0
        /*--------------------------------------------------------------------------------------------*/
        private static Dictionary <string, object> BuildEnumItem(EnumItem pItem)
        {
            PropertyInfo[] props = pItem.GetType().GetProperties();
            var            map   = new Dictionary <string, object>();

            foreach (PropertyInfo pi in props)
            {
                object val = pi.GetValue(pItem, null);

                if (val == null || (val as string) == "")
                {
                    continue;
                }

                map.Add(pi.Name, val);
            }

            return(map);
        }
Example #33
0
 public void Add(EnumItem enumItem)
 {
     this.KeyedEnumItems.Add(enumItem);
     this.ValuedEnumItems.Add(enumItem);
 }
Example #34
0
 /// <summary>
 /// Analyze a enum type.
 /// </summary>
 /// <param name="helper">A htmlhelper.</param>
 /// <param name="type">Type of enum.</param>
 /// <returns></returns>
 public static EnumItem[] EnumAnalyze(this HtmlHelper helper, Type type)
 {
     if (!type.IsEnum)
         throw new ArgumentException(type.Name + " is not a enum type.");
     if (!_EnumCache.ContainsKey(type))
     {
         var fields = type.GetFields(BindingFlags.Static | BindingFlags.Public);
         EnumItem[] list = new EnumItem[fields.Length];
         Type enumType = Enum.GetUnderlyingType(type);
         for (int i = 0; i < fields.Length; i++)
         {
             var field = fields[i];
             EnumItem item = new EnumItem();
             DisplayAttribute display = field.GetCustomAttribute<DisplayAttribute>();
             if (display == null)
                 item.Name = field.Name;
             else
                 item.Name = display.Name;
             item.Value = Convert.ChangeType(field.GetValue(null), enumType);
             list[i] = item;
         }
         _EnumCache.Add(type, list);
     }
     return _EnumCache[type];
 }