示例#1
0
        public OptionSetModel <int> EnumToOption(Enum eOption)
        {
            var option = new OptionSetModel <int>();

            option.Value = Convert.ToInt32(eOption);
            option.Label = eOption.ToDescription();
            return(option);
        }
示例#2
0
        public List <OptionSetModel <int> > EnumToOptionSetList <T>()
        {
            var lista = new List <OptionSetModel <int> >();

            foreach (var item in Enum.GetValues(typeof(T)))
            {
                var option = new OptionSetModel <int>();
                option.Value = (int)item;
                option.Label = (item as Enum).ToDescription();
                lista.Add(option);
            }

            return(lista);
        }
示例#3
0
        /// <summary>
        /// Builds the option set.
        /// </summary>
        /// <param name="optionSetModel">The option set model.</param>
        public void BuildOptionSet(OptionSetModel optionSetModel)
        {
            var compileUnit   = new CodeCompileUnit();
            var codeNamespace = new CodeNamespace(optionSetModel.Namespace);

            compileUnit.Namespaces.Add(codeNamespace);

            var enumType = new CodeTypeDeclaration(optionSetModel.OptionSetName)
            {
                IsEnum = true
            };

            AddSummaryComment(enumType, optionSetModel.Description);

            foreach (var optionSetValueModel in optionSetModel.Values)
            {
                var f = new CodeMemberField
                {
                    Name           = optionSetValueModel.Name,
                    InitExpression = new CodePrimitiveExpression(optionSetValueModel.Value)
                };

                AddSummaryComment(f, optionSetValueModel.Description);

                enumType.Members.Add(f);
            }

            var provider =
                CodeDomProvider.CreateProvider("cs");

            codeNamespace.Types.Add(enumType);

            using (var sourceFile = new StreamWriter(CreatePath($"{optionSetModel.OptionSetName}.cs")))
            {
                provider.GenerateCodeFromCompileUnit(compileUnit, sourceFile, null);
            }
        }
示例#4
0
        public IActionResult Index(OptionSetModel model)
        {
            if (!model.LoadData)
            {
                return(DynamicResult(model));
            }
            FilterContainer <Schema.Domain.OptionSet> filter = FilterContainerBuilder.Build <Schema.Domain.OptionSet>();

            filter.And(n => n.IsPublic == true);
            if (model.Name.IsNotEmpty())
            {
                filter.And(n => n.Name.Like(model.Name));
            }

            if (model.GetAll)
            {
                model.Page     = 1;
                model.PageSize = WebContext.PlatformSettings.MaxFetchRecords;
            }
            else if (!model.PageSizeBySeted && CurrentUser.UserSettings.PagingLimit > 0)
            {
                model.PageSize = CurrentUser.UserSettings.PagingLimit;
            }
            model.PageSize = model.PageSize > WebContext.PlatformSettings.MaxFetchRecords ? WebContext.PlatformSettings.MaxFetchRecords : model.PageSize;

            PagedList <Schema.Domain.OptionSet> result = _optionSetFinder.QueryPaged(x => x
                                                                                     .Page(model.Page, model.PageSize)
                                                                                     .Where(filter)
                                                                                     .Sort(n => n.OnFile(model.SortBy).ByDirection(model.SortDirection))
                                                                                     , SolutionId.Value, true);

            model.Items      = result.Items;
            model.TotalItems = result.TotalItems;
            model.SolutionId = SolutionId.Value;
            return(DynamicResult(model));
        }