예제 #1
0
 /// <summary>
 /// 写入系统请求日志(用户操作记录)
 /// </summary>
 /// <param name="logContent"></param>
 /// <param name="level">日志等级   1:错误  2:警告  3:正常</param>
 public void WriteRequestLog(long userid, int logType, string bussiesValue = "", string remark = "")
 {
     Task.Run(() =>
     {
         try
         {
             var requestLog = new SYS_RequestLog
             {
                 ID            = Guid.NewGuid().ToString(),
                 UserID        = userid,
                 LogType       = logType.ToString(),
                 LogTypeName   = EnumModel.GetEnumDesc((EnumModel.LogType)logType),
                 BussiessValue = bussiesValue,
                 CreatedUserID = userid,
                 UpdateUserID  = userid,
                 CreatedTime   = DateTime.Now,
                 UpdateTime    = DateTime.Now,
                 Remark        = remark
             };
             commonDal.Add(requestLog);
         }
         catch (Exception ex)
         {
             //log error
         }
     });
 }
예제 #2
0
        public void EveryEnum_CanBeConvertedTo_An_EnumModel()
        {
            EnumModel firstModel      = MyEnum.FirstOption;
            EnumModel secondModel     = MyEnum.SecondOption;
            EnumModel thirdModel      = MyEnum.ThirdOption;
            EnumModel emptyModel      = MyEnum.EmptyOption;
            EnumModel outOfRangeModel = (MyEnum)(-1);

            Assert.NotNull(firstModel);
            Assert.NotNull(secondModel);
            Assert.NotNull(thirdModel);
            Assert.NotNull(emptyModel);
            Assert.NotNull(outOfRangeModel);

            Assert.Equal("0", firstModel.Id);
            Assert.Equal("My First Option", firstModel.Description);

            Assert.Equal("second-option", secondModel.Id);
            Assert.Equal(nameof(MyEnum.SecondOption), secondModel.Description);

            Assert.Equal(nameof(MyEnum.ThirdOption), thirdModel.Id);
            Assert.Equal("My Third Option", thirdModel.Description);

            Assert.Equal(((int)MyEnum.EmptyOption).ToString(), emptyModel.Id);
            Assert.Equal(nameof(MyEnum.EmptyOption), emptyModel.Description);

            Assert.Equal("-1", outOfRangeModel.Id);
            Assert.Null(outOfRangeModel.Description);
        }
예제 #3
0
 /// <summary>
 /// 根据园区ID获取视频巡更设备分组
 /// </summary>
 /// <returns></returns>
 public List <EnumModel> GetCameraPatrolDeviceGroupInfoByRegion(int region_id)
 {
     try
     {
         List <EnumModel>         enumList  = new List <EnumModel>();
         EnumModel                enumModel = null;
         ServDeviceGroupInfoQuery query     = new ServDeviceGroupInfoQuery();
         ServDeviceGroupInfoDAL   dal       = new ServDeviceGroupInfoDAL();
         query.device_type = (int)EnumClass.GroupDeviceType.视频;
         query.group_type  = (int)EnumClass.GroupType.视频轮播;
         query.region_id   = region_id;
         List <ServDeviceGroupInfoModel> list = dal.GetCameraPatrolDeviceGroupInfoByRegion(query);
         foreach (ServDeviceGroupInfoModel model in list)
         {
             enumModel       = new EnumModel();
             enumModel.key   = model.id;
             enumModel.value = model.group_name;
             enumList.Add(enumModel);
         }
         return(enumList);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #4
0
        /// <summary>
        /// 根据枚举模型生成虚拟代码
        /// </summary>
        public static string GenEnumDummyCode(EnumModel model, string appName)
        {
            var sb = StringBuilderCache.Acquire();

            sb.Append($"namespace {appName}.Enums {{\n");
            if (!string.IsNullOrEmpty(model.Comment))
            {
                sb.Append("/// <summary>\n");
                sb.Append($"/// {model.Comment}\n");
                sb.Append("/// </summary>\n");
            }
            sb.Append($"[{TypeHelper.EnumModelAttribute}()]\n");
            sb.Append($"public enum {model.Name} {{\n");
            for (int i = 0; i < model.Items.Count; i++)
            {
                if (i != 0)
                {
                    sb.Append(',');
                }
                sb.Append($"[{TypeHelper.MemberAccessInterceptorAttribute}(\"EnumItem\")]{model.Items[i].Name}={model.Items[i].Value}");
            }
            sb.Append("}}");

            return(StringBuilderCache.GetStringAndRelease(sb));
        }
예제 #5
0
 public SystemViewModel(DataRecom save)
 {
     _saveSets       = save.Table1;
     _saveFlags      = save.Table2;
     PlayModeItems   = new EnumModel <PlayMode>();
     DifficultyItems = new EnumModel <Difficulty>();
 }
예제 #6
0
 public Entry(IMessageProvider messageProvider, Item.Entry item)
 {
     _messageProvider = messageProvider;
     Item             = item;
     Types            = new EnumModel <Item.Type>();
     Ranks            = new EnumModel <Item.Rank>();
 }
예제 #7
0
 public Entry(IItemProvider itemProvider, Trsr treasure)
 {
     ItemProvider = itemProvider;
     Treasure     = treasure;
     Worlds       = new Kh2WorldsList();
     Types        = new EnumModel <Trsr.TrsrType>();
 }
예제 #8
0
 public ActionResult <LookupModel> GetAllValues()
 {
     return(Execute(_ => new LookupModel
     {
         EnvironmentVariables = new EnvironmentVariablesModel
         {
             Syrinx = new SyrinxHostModel
             {
                 Host = syrinxProperties.Host.GetExternalAddress(),
                 Api = syrinxProperties.Api
             }
         },
         LookupValues = new LookupValuesModel
         {
             PortalPermissions = EnumModel.GetEnumModelValues <PortalPermission>(),
             IncidentStatuses = EnumModel.GetEnumModelValues <IncidentStatus>(),
             NotificationLevels = EnumModel.GetEnumModelValues <NotificationLevel>(),
             HostOperatingSystems = EnumModel.GetEnumModelValues <HostOperatingSystem>(),
             HostConnectionTypes = EnumModel.GetEnumModelValues <HostConnectionType>(),
             ModuleStatuses = EnumModel.GetEnumModelValues <ModuleStatus>(),
             ModuleConfigurationVerdicts = EnumModel.GetEnumModelValues <ModuleConfigurationVerdict>(),
             FileExtensions = EnumModel.GetEnumModelValues <FileExtension>()
         }
     }));
 }
예제 #9
0
 /// <summary>
 /// 根据园区ID和类型获取大屏配置
 /// </summary>
 /// <returns></returns>
 public List <EnumModel> GetGalleryConfigByRegion(int regionId)
 {
     try
     {
         List <EnumModel>            enumList  = new List <EnumModel>();
         EnumModel                   enumModel = null;
         BaseRegionExtendConfigQuery query     = new BaseRegionExtendConfigQuery();
         BaseRegionExtendConfigDAL   dal       = new BaseRegionExtendConfigDAL();
         query.config_type = (int)EnumClass.RegionExtendConfigType.大屏;
         query.region_id   = regionId;
         List <BaseRegionExtendConfigModel> list = dal.GetRegionExtendConfigByRegionIdAndConfigType(query);
         foreach (BaseRegionExtendConfigModel model in list)
         {
             enumModel       = new EnumModel();
             enumModel.key   = model.id;
             enumModel.value = model.ext1;  //取屏的编号
             enumList.Add(enumModel);
         }
         return(enumList);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #10
0
        public void ParseFile()
        {
            /* Parse C# file and make sure EmunModel array get filled correctly */
            string path       = @"..\..\T20\Input.cs";
            string sourceText = File.ReadAllText(path);

            ComposerStrings composer = new ComposerStrings(null);

            composer.Compose(sourceText);

            Assert.AreEqual(1, composer.EnumModels.Count);

            EnumModel model = composer.EnumModels[0];

            Assert.AreEqual("E2", model.Name);
            Assert.AreEqual("SELECT lkc__id, lkc_name FROM AcClaim.dbo.T_LookupCategories", model.SqlSelect);
            Assert.AreEqual(2, model.Values.Count);
            Assert.AreEqual("server1", model.SqlProvider);
            Assert.AreEqual("database2", model.SqlDatasource);

            EnumModelValue value = null;

            value = model.Values[0];
            Assert.AreEqual(344, value.Value);
            Assert.AreEqual("K2", value.NameCs);

            value = model.Values[1];
            Assert.AreEqual(534, value.Value);
            Assert.AreEqual("K5", value.NameCs);
        }
예제 #11
0
        /// <summary>
        /// Overwrites an <see cref="Access"/> with values from the model's properties.
        /// </summary>
        /// <param name="settings"></param>
        /// <returns></returns>
        public Access CopyToSettings(Access settings)
        {
            settings.DefaultAccess = EnumModel.CastFromInt <DefaultAccess>(DefaultAccess);
            CollectionHelper.OverwriteDestinationWithSource(Addresses.Select(r => r.Cidr).ToList(), settings.Addresses);

            return(settings);
        }
예제 #12
0
        /// <summary>
        ///		Obtiene una tabla con los datos de los enumerados de un documento
        /// </summary>
        private void GetTableEnums(MLNode objMLRoot, DocumentFileModel objDocument)
        {
            LanguageStructModelCollection objColStructs = base.SelectItemsForGeneration(objDocument, LanguageStructModel.StructType.Enum);

            if (objColStructs != null && objColStructs.Count > 0)
            {
                MLNode objMLTable;

                // Cabecera
                objMLRoot.Nodes.Add("br");
                objMLRoot.Nodes.Add("h3", "Enumerados");
                // Cabecera de tabla
                objMLTable = MLBuilder.AddTable(objMLRoot, "Ambito", "Nombre", "Descripción");
                // Recorre los enumerados
                foreach (LanguageStructModel objStruct in objColStructs)
                {
                    EnumModel objEnum = objStruct as EnumModel;

                    if (objEnum != null)
                    {                                                                             // Cabecera del enumerado
                        MLBuilder.AddRowTable(objMLTable, MLBuilderHelper.GetModifierText(objEnum.Modifier),
                                              objEnum.Name, objEnum.RemarksXml.Summary);
                        // Comentarios adicionales
                        AddRowRemarks(objMLTable, objEnum.RemarksXml.Remarks, 1, 2);
                        // Añade los miembros del enumerado
                        foreach (LanguageStructModel objMember in objEnum.Items)
                        {
                            MLBuilder.AddRowTable(objMLTable, "", objMember.Name, objMember.RemarksXml.Summary);
                        }
                    }
                }
            }
        }
예제 #13
0
        /// <summary>
        /// 根据key范围获取枚举键值对
        /// </summary>
        /// <typeparam name="T">枚举类型</typeparam>
        /// <param name="min">最小值(类型为int)</param>
        /// <param name="max">最大值(类型为int)</param>
        /// <returns>枚举键值对</returns>
        public static List <EnumModel> GetEnumModelList <T>(int min, int max) where T : struct
        {
            List <EnumModel> enumList = new List <EnumModel>();

            if (!typeof(T).IsEnum)
            {
                throw new Exception("类型参数不合法,当前泛型类的类型参数必须为枚举类型");
            }
            else
            {
                string[] keys   = Enum.GetNames(typeof(T));
                Array    values = Enum.GetValues(typeof(T));
                System.Collections.ArrayList arrList = new System.Collections.ArrayList();
                foreach (var val in values)
                {
                    int entity = Convert.ToInt32(val);
                    if (entity >= min && entity <= max)
                    {
                        arrList.Add(entity);
                    }
                }
                foreach (var n in arrList)
                {
                    EnumModel model = new EnumModel();
                    model.key   = (int)n;
                    model.value = Enum.GetName(typeof(T), n);
                    enumList.Add(model);
                }
            }
            return(enumList);
        }
예제 #14
0
 public static EnumModel GetInstance()
 {
     if (_instance == null)
     {
         _instance = new EnumModel();
     }
     return(_instance);
 }
예제 #15
0
        public void Initialize()
        {
            _model    = new EnumModel();
            _dbReader = new Fake_DbReader();

            _model.SqlSelect = "SELECT id, name FROM T_Simple";
            _model.Name      = "A Test Enumeration";
        }
예제 #16
0
        public CommandModel(PalCommand command)
        {
            Command = command;

            CommandTypes = new EnumModel <CommandType>();
            EaseTypes    = new EnumModel <Ease>();
            SelectedCommandChanged(CommandType);
        }
예제 #17
0
 public int AddEnumModel(EnumModel model)
 {
     return(SqlHelper.ExecuteNonQuery(" insert into  SJEnumTable(GroupSeq,GroupName,ItemSeq,ItemValue,ParentGroupSeq) values(@GroupSeq,@GroupName,@ItemSeq,@ItemValue,@ParentGroupSeq)"
                                      , new SqlParameter[] { new SqlParameter("@GroupSeq", model.GroupSeq),
                                                             new SqlParameter("@GroupName", model.GroupName),
                                                             new SqlParameter("@ItemSeq", model.ItemSeq),
                                                             new SqlParameter("@ItemValue", model.ItemValue),
                                                             new SqlParameter("@ParentGroupSeq", model.ParentGroupSeq) }));
 }
예제 #18
0
        public static List <EnumModel> GenerateList(string[] assemblyNameFilters = null, string[] namespaceFilters = null)
        {
            var result = new List <EnumModel>();

            //string enumAssembly = "Pms.ServiceManagement.Data";
            //string enumNamespace = "Pms.ServiceManagement.Data.Interfaces.Entities";

            var assemblies = AppDomain.CurrentDomain.GetAssemblies().Select(x => x);

            if (assemblyNameFilters != null)
            {
                assemblies = assemblies.Where(a => assemblyNameFilters.Any(f => a.FullName.Contains(f)));
            }

            var q = assemblies.SelectMany(t => t.GetTypes());

            if (namespaceFilters != null)
            {
                q = q.Where(t => t.IsEnum && t.Namespace != null && namespaceFilters.Any(f => t.Namespace.Contains(f))).ToList();
            }

            foreach (var type in q)
            {
                var m = new EnumModel
                {
                    Name  = type.Name,
                    Items = new List <EnumItemModel>()
                };

                var descAttrib = type.GetCustomAttribute(typeof(DescriptionAttribute));
                if (descAttrib != null)
                {
                    m.Description = ((DescriptionAttribute)descAttrib).Description;
                }

                // Get the different values for the Enum
                var fields = type.GetFields();
                foreach (var fieldInfo in fields)
                {
                    if (fieldInfo.IsLiteral)
                    {
                        var e = Enum.Parse(type, fieldInfo.GetValue(null).ToString()) as Enum;

                        m.Items.Add(new EnumItemModel
                        {
                            Value       = Convert.ToInt32(e),
                            Name        = e.ToString(),
                            Description = GetDescriptionAttributeValue(fieldInfo)
                        });
                    }
                }

                result.Add(m);
            }

            return(result);
        }
예제 #19
0
        public ViewModel()
        {
            var plugin = Plugin.Singleton;

            if (plugin != null)
            {
                IndexPageAddress = plugin.GetIndexPageAddress();
            }
            EnumDefaultAccesses = EnumModel.CreateFromEnum <DefaultAccess>(r => Describe.DefaultAccess(r));
        }
예제 #20
0
        /// <summary>
        ///		Interpreta un enumerado
        /// </summary>
        protected void ParseEnum(SyntaxNode root, LanguageStructModel parent, INamedTypeSymbol symbol)
        {
            EnumModel enumDef = parent.Items.CreateEnum(parent);

            // Inicializa los elementos
            InitStructModel(enumDef, symbol, root);
            // Obtiene los datos del tipo
            enumDef.MainType = GetTypeData(symbol.EnumUnderlyingType);
            // Obtiene los miembros del enumerado
            ParseChilds(root, enumDef);
        }
예제 #21
0
        internal static void EnsureMemberNamesUnique(this EnumModel enumModel)
        {
            var duplicateNames = enumModel.Members.FindDuplicates(member => member.Name, StringComparer.Ordinal);

            foreach (var member in enumModel.Members)
            {
                member.UniqueName = duplicateNames.Contains(member.Name)
                    ? $"{member.Name}_{member.Value.ToRawcode()}"
                    : member.Name;
            }
        }
예제 #22
0
        /// <summary>
        ///		Interpreta un enumerado
        /// </summary>
        protected void ParseEnum(SyntaxNode objRoot, LanguageStructModel objParent, INamedTypeSymbol objSymbol)
        {
            EnumModel objEnum = objParent.Items.CreateEnum(objParent);

            // Inicializa los elementos
            InitStructModel(objEnum, objSymbol, objRoot);
            // Obtiene los datos del tipo
            objEnum.Type = GetTypeData(objSymbol.EnumUnderlyingType);
            // Obtiene los miembros del enumerado
            ParseChilds(objRoot, objEnum);
        }
예제 #23
0
 public FormElementsDemoModel()
 {
     MyInformMeModel  = new InformMeModel();
     MyDetailsModel   = new DetailsModel();
     MyCheckboxModel  = new CheckboxModel();
     MyCityRadioModel = new CityRadioModel()
     {
         CityRadio = "IST"
     };
     MyEnumModel = new EnumModel();
 }
예제 #24
0
        public IHttpActionResult CARRResponseStatusForAA()
        {
            var  list   = new List <EnumViewModel>().AsEnumerable();
            Guid roleId = User != null && User.Identity != null && User.Identity.GetUserLoginInfo() != null?User.Identity.GetUserLoginInfo().RoleId : Guid.Empty;

            if (roleId == new Guid(ApplicationConstants.AreaAdministratorRoleId) || roleId == new Guid(ApplicationConstants.AssistantAreaAdministratorRoleId))
            {
                list = EnumModel <CARRResponseStatus> .List();
            }
            return(Ok(list));
        }
예제 #25
0
        /// <summary>
        ///		Interpreta un enumerado
        /// </summary>
        private void ParseEnum(SyntaxNode objRoot, LanguageStructModel objParent)
        {
            EnumModel        objEnum   = objParent.Items.CreateEnum(objParent);
            INamedTypeSymbol objSymbol = objTreeSemantic.GetDeclaredSymbol(objRoot as EnumDeclarationSyntax);

            // Inicializa los elementos
            InitStructModel(objEnum, objSymbol, objRoot);
            // Obtiene los datos del tipo
            objEnum.Type = GetTypeData(objSymbol.EnumUnderlyingType);
            // Obtiene los miembros del enumerado
            ParseChilds(objRoot, objEnum);
        }
 public IActionResult GetById(int id)
 {
     if (Enum.TryParse <LinkType>(id.ToString(), out LinkType linkType))
     {
         EnumModel item = new EnumModel(linkType);
         if (!item.Name.Equals(item.Value.ToString()))
         {
             return(new ObjectResult(item));
         }
     }
     return(NotFound());
 }
        public IActionResult GetStatusById(int id)
        {
            var       model = _billService.GetDetail(id);
            EnumModel enums = model.BillDetails
                              .Select(c => new EnumModel()
            {
                Value = (int)model.BillStatus,
                Name  = model.BillStatus.ToString()
            }).SingleOrDefault();

            return(new OkObjectResult(enums));
        }
예제 #28
0
        public DefinitionsModel(UnitService unitService)
        {
            this.Difficulties = EnumModel <Difficulty> .GetEnumModels();

            this.IngredientTypes = EnumModel <IngredientType> .GetEnumModels();

            this.Spicies = EnumModel <Spicy> .GetEnumModels();

            this.UnitCategories = EnumModel <UnitCategory> .GetEnumModels();

            this.Units = unitService.GetAllUnits();
        }
예제 #29
0
        public void GetEnumModel()
        {
            var result = new List <EnumModel>();

            var values = Enum.GetValues(typeof(ProductTypeEnum));

            foreach (var value in values)
            {
                var model = new EnumModel((ProductTypeEnum)value);

                result.Add(model);
            }
        }
예제 #30
0
 public Truck(
     string chassis,
     EnumModel model,
     string modelComplement,
     int year,
     int modelYear)
 {
     Chassis         = chassis;
     Model           = model;
     ModelComplement = modelComplement;
     Year            = year;
     ModelYear       = modelYear;
 }
		public void SaveAndQueryEnumModel()
		{
			EnumModel model = new EnumModel();
			model.Roles.Add(Role.Admin);
			model.Roles.Add(Role.Admin);
			model.Roles.Add(Role.User);

			ActiveRecordMediator.SaveAndFlush(model);

			EnumModel first = ActiveRecordMediator<EnumModel>.FindFirst();

			Assert.AreEqual(first.Roles.Count, 3);
			Assert.IsTrue(first.Roles.Contains(Role.Admin));
			Assert.IsTrue(first.Roles.Contains(Role.User));
		}
        // ReSharper disable once FunctionComplexityOverflow
        private TypeModel CreateTypeModel(Uri source, XmlSchemaAnnotated type, XmlQualifiedName qualifiedName)
        {
            TypeModel typeModel;
            if (!qualifiedName.IsEmpty && Types.TryGetValue(qualifiedName, out typeModel)) return typeModel;

            if (source == null)
                throw new ArgumentNullException("source");
            var namespaceModel = CreateNamespaceModel(source, qualifiedName);

            var docs = GetDocumentation(type);

            var group = type as XmlSchemaGroup;
            if (group != null)
            {
                var name = "I" + ToTitleCase(qualifiedName.Name);
                if (namespaceModel != null) name = namespaceModel.GetUniqueTypeName(name);

                var interfaceModel = new InterfaceModel(_configuration)
                {
                    Name = name,
                    Namespace = namespaceModel,
                    XmlSchemaName = qualifiedName
                };

                interfaceModel.Documentation.AddRange(docs);

                if (namespaceModel != null) namespaceModel.Types[name] = interfaceModel;
                if (!qualifiedName.IsEmpty) Types[qualifiedName] = interfaceModel;

                var particle = group.Particle;
                var items = GetElements(particle);
                var properties = CreatePropertiesForElements(source, interfaceModel, particle, items.Where(i => !(i.XmlParticle is XmlSchemaGroupRef)));
                interfaceModel.Properties.AddRange(properties);
                var interfaces = items.Select(i => i.XmlParticle).OfType<XmlSchemaGroupRef>()
                    .Select(i => (InterfaceModel)CreateTypeModel(new Uri(i.SourceUri), Groups[i.RefName], i.RefName));
                interfaceModel.Interfaces.AddRange(interfaces);

                return interfaceModel;
            }

            var attributeGroup = type as XmlSchemaAttributeGroup;
            if (attributeGroup != null)
            {
                var name = "I" + ToTitleCase(qualifiedName.Name);
                if (namespaceModel != null) name = namespaceModel.GetUniqueTypeName(name);

                var interfaceModel = new InterfaceModel(_configuration)
                {
                    Name = name,
                    Namespace = namespaceModel,
                    XmlSchemaName = qualifiedName
                };

                interfaceModel.Documentation.AddRange(docs);

                if (namespaceModel != null) namespaceModel.Types[name] = interfaceModel;
                if (!qualifiedName.IsEmpty) Types[qualifiedName] = interfaceModel;

                var items = attributeGroup.Attributes;
                var properties = CreatePropertiesForAttributes(source, interfaceModel, items.OfType<XmlSchemaAttribute>());
                interfaceModel.Properties.AddRange(properties);
                var interfaces = items.OfType<XmlSchemaAttributeGroupRef>()
                    .Select(a => (InterfaceModel)CreateTypeModel(new Uri(a.SourceUri), AttributeGroups[a.RefName], a.RefName));
                interfaceModel.Interfaces.AddRange(interfaces);

                return interfaceModel;
            }

            var complexType = type as XmlSchemaComplexType;
            if (complexType != null)
            {
                var name = ToTitleCase(qualifiedName.Name);
                if (namespaceModel != null) name = namespaceModel.GetUniqueTypeName(name);

                var classModel = new ClassModel(_configuration)
                {
                    Name = name,
                    Namespace = namespaceModel,
                    XmlSchemaName = qualifiedName,
                    XmlSchemaType = complexType,
                    IsAbstract = complexType.IsAbstract,
                    IsAnonymous = complexType.QualifiedName.Name == "",
                    IsMixed = complexType.IsMixed,
                    IsSubstitution = complexType.Parent is XmlSchemaElement && !((XmlSchemaElement)complexType.Parent).SubstitutionGroup.IsEmpty,
                    EnableDataBinding = EnableDataBinding,
                };

                classModel.Documentation.AddRange(docs);

                if (namespaceModel != null)
                {
                    namespaceModel.Types[classModel.Name] = classModel;
                }

                if (!qualifiedName.IsEmpty) Types[qualifiedName] = classModel;

                if (complexType.BaseXmlSchemaType != null && complexType.BaseXmlSchemaType.QualifiedName != AnyType)
                {
                    var baseModel = CreateTypeModel(source, complexType.BaseXmlSchemaType, complexType.BaseXmlSchemaType.QualifiedName);
                    classModel.BaseClass = baseModel;
                    if (baseModel is ClassModel) ((ClassModel)classModel.BaseClass).DerivedTypes.Add(classModel);
                }

                XmlSchemaParticle particle = null;
                if (classModel.BaseClass != null)
                {
                    if (complexType.ContentModel.Content is XmlSchemaComplexContentExtension)
                        particle = ((XmlSchemaComplexContentExtension)complexType.ContentModel.Content).Particle;

                    // If it's a restriction, do not duplicate elements on the derived class, they're already in the base class.
                    // See https://msdn.microsoft.com/en-us/library/f3z3wh0y.aspx
                    //else if (complexType.ContentModel.Content is XmlSchemaComplexContentRestriction)
                    //    particle = ((XmlSchemaComplexContentRestriction)complexType.ContentModel.Content).Particle;
                }
                else particle = complexType.ContentTypeParticle;

                var items = GetElements(particle);
                var properties = CreatePropertiesForElements(source, classModel, particle, items);
                classModel.Properties.AddRange(properties);

                if (GenerateInterfaces)
                {
                    var interfaces = items.Select(i => i.XmlParticle).OfType<XmlSchemaGroupRef>()
                        .Select(i => (InterfaceModel)CreateTypeModel(new Uri(i.SourceUri), Groups[i.RefName], i.RefName));
                    classModel.Interfaces.AddRange(interfaces);
                }

                XmlSchemaObjectCollection attributes = null;
                if (classModel.BaseClass != null)
                {
                    if (complexType.ContentModel.Content is XmlSchemaComplexContentExtension)
                        attributes = ((XmlSchemaComplexContentExtension)complexType.ContentModel.Content).Attributes;
                    else if (complexType.ContentModel.Content is XmlSchemaSimpleContentExtension)
                        attributes = ((XmlSchemaSimpleContentExtension)complexType.ContentModel.Content).Attributes;

                    // If it's a restriction, do not duplicate attributes on the derived class, they're already in the base class.
                    // See https://msdn.microsoft.com/en-us/library/f3z3wh0y.aspx
                    //else if (complexType.ContentModel.Content is XmlSchemaComplexContentRestriction)
                    //    attributes = ((XmlSchemaComplexContentRestriction)complexType.ContentModel.Content).Attributes;
                    //else if (complexType.ContentModel.Content is XmlSchemaSimpleContentRestriction)
                    //    attributes = ((XmlSchemaSimpleContentRestriction)complexType.ContentModel.Content).Attributes;
                }
                else attributes = complexType.Attributes;

                if (attributes != null)
                {
                    var attributeProperties = CreatePropertiesForAttributes(source, classModel, attributes.Cast<XmlSchemaObject>());
                    classModel.Properties.AddRange(attributeProperties);

                    if (GenerateInterfaces)
                    {
                        var attributeInterfaces = attributes.OfType<XmlSchemaAttributeGroupRef>()
                            .Select(i => (InterfaceModel)CreateTypeModel(new Uri(i.SourceUri), AttributeGroups[i.RefName], i.RefName));
                        classModel.Interfaces.AddRange(attributeInterfaces);
                    }
                }

                if (complexType.AnyAttribute != null)
                {
                    var property = new PropertyModel(_configuration)
                    {
                        OwningType = classModel,
                        Name = "AnyAttribute",
                        Type = new SimpleModel(_configuration) { ValueType = typeof(XmlAttribute), UseDataTypeAttribute = false },
                        IsAttribute = true,
                        IsCollection = true,
                        IsAny = true
                    };

                    var attributeDocs = GetDocumentation(complexType.AnyAttribute);
                    property.Documentation.AddRange(attributeDocs);

                    classModel.Properties.Add(property);
                }

                return classModel;
            }

            var simpleType = type as XmlSchemaSimpleType;
            if (simpleType != null)
            {
                var restrictions = new List<RestrictionModel>();

                var typeRestriction = simpleType.Content as XmlSchemaSimpleTypeRestriction;
                if (typeRestriction != null)
                {
                    var enumFacets = typeRestriction.Facets.OfType<XmlSchemaEnumerationFacet>().ToList();
                    var isEnum = (enumFacets.Count == typeRestriction.Facets.Count && enumFacets.Count != 0)
                                    || (EnumTypes.Contains(typeRestriction.BaseTypeName.Name) && enumFacets.Any());
                    if (isEnum)
                    {
                        // we got an enum
                        var name = ToTitleCase(qualifiedName.Name);
                        if (namespaceModel != null) name = namespaceModel.GetUniqueTypeName(name);

                        var enumModel = new EnumModel(_configuration)
                        {
                            Name = name,
                            Namespace = namespaceModel,
                            XmlSchemaName = qualifiedName,
                            XmlSchemaType = simpleType,
                        };

                        enumModel.Documentation.AddRange(docs);

                        foreach (var facet in enumFacets.DistinctBy(f => f.Value))
                        {
                            var value = new EnumValueModel
                            {
                                Name = ToTitleCase(facet.Value).ToNormalizedEnumName(),
                                Value = facet.Value
                            };

                            var valueDocs = GetDocumentation(facet);
                            value.Documentation.AddRange(valueDocs);

                            var deprecated = facet.Annotation != null && facet.Annotation.Items.OfType<XmlSchemaAppInfo>()
                                .Any(a => a.Markup.Any(m => m.Name == "annox:annotate" && m.HasChildNodes && m.FirstChild.Name == "jl:Deprecated"));
                            value.IsDeprecated = deprecated;

                            enumModel.Values.Add(value);
                        }

                        if (namespaceModel != null)
                        {
                            namespaceModel.Types[enumModel.Name] = enumModel;
                        }

                        if (!qualifiedName.IsEmpty) Types[qualifiedName] = enumModel;

                        return enumModel;
                    }

                    restrictions = GetRestrictions(typeRestriction.Facets.Cast<XmlSchemaFacet>(), simpleType).Where(r => r != null).Sanitize().ToList();
                }

                var simpleModelName = ToTitleCase(qualifiedName.Name);
                if (namespaceModel != null) simpleModelName = namespaceModel.GetUniqueTypeName(simpleModelName);

                var simpleModel = new SimpleModel(_configuration)
                {
                    Name = simpleModelName,
                    Namespace = namespaceModel,
                    XmlSchemaName = qualifiedName,
                    XmlSchemaType = simpleType,
                    ValueType = simpleType.Datatype.GetEffectiveType(_configuration),
                };

                simpleModel.Documentation.AddRange(docs);
                simpleModel.Restrictions.AddRange(restrictions);

                if (namespaceModel != null)
                {
                    namespaceModel.Types[simpleModel.Name] = simpleModel;
                }

                if (!qualifiedName.IsEmpty) Types[qualifiedName] = simpleModel;

                return simpleModel;
            }

            throw new Exception(string.Format("Cannot build declaration for {0}", qualifiedName));
        }
예제 #33
0
        public int Save(int? operation, int? id, string nombre, int? artista, EnumModel.TipoMaterial? tipo, int? municipio, string descripcion, string enlace, bool vivo, DateTime? fechahora)
        {
            StringBuilder sbQuery = new StringBuilder();

            using (var conn = new SqlConnection(_connectionString))
            using (var cmd = conn.CreateCommand())
            {
                switch (operation)
                {
                    case ((int)Operation.Status.Create):
                        sbQuery.Append("INSERT INTO tblMateriales   ");
                        sbQuery.Append("VALUES (                    ");
                        sbQuery.Append("      @material             ");
                        sbQuery.Append("    , @artista              ");
                        sbQuery.Append("    , @tipo                 ");
                        sbQuery.Append("    , @municipio            ");
                        sbQuery.Append("    , @descripcion          ");
                        sbQuery.Append("    , @enlace               ");
                        sbQuery.Append("    , @vivo                 ");
                        sbQuery.Append("    , @fechahora            ");
                        sbQuery.Append(")                           ");
                        break;
                    case ((int)Operation.Status.Update):
                        sbQuery.Append("UPDATE tblMateriales                    ");
                        sbQuery.Append("SET                                     ");
                        sbQuery.Append("      strNombreMaterial=@material       ");
                        sbQuery.Append("    , intIdArtista=@artista             ");
                        sbQuery.Append("    , intIdTipoMaterial=@tipo           ");
                        sbQuery.Append("    , intIdMunicipio=@municipio         ");
                        sbQuery.Append("    , strDescripcion=@descripcion       ");
                        sbQuery.Append("    , strLinkMaterial=@enlace           ");
                        sbQuery.Append("    , blnTrasmitidoEnVivo=@vivo         ");
                        sbQuery.Append("    , dtmFechaTransmision=@fechahora    ");
                        sbQuery.Append("WHERE                                   ");
                        sbQuery.Append("    intIdMaterial = @id                 ");
                        break;
                }

                conn.Open();
                cmd.CommandText = sbQuery.ToString();
                cmd.Parameters.AddWithValue("@id", id);
                cmd.Parameters.AddWithValue("@material", nombre);
                cmd.Parameters.AddWithValue("@artista", artista);
                cmd.Parameters.AddWithValue("@tipo", (int)tipo);
                cmd.Parameters.AddWithValue("@municipio", (int)municipio);
                cmd.Parameters.AddWithValue("@descripcion", descripcion);
                cmd.Parameters.AddWithValue("@enlace", enlace);
                cmd.Parameters.AddWithValue("@vivo", (vivo ? 1 : 0));
                if (fechahora == null)
                {
                    cmd.Parameters.AddWithValue("@fechahora", DBNull.Value);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@fechahora", fechahora);
                }
                int l_intRec = cmd.ExecuteNonQuery();

                return l_intRec;
            }
        }
예제 #34
0
파일: Program.cs 프로젝트: RigidHorn/idl
        void ReadXml()
        {
            Console.WriteLine("パスを入力して下さい。");
              var path = Console.ReadLine();

              FileStream fs = null;

              try
              {
            fs = new FileStream(path, FileMode.Open);
              }
              catch (Exception e)
              {
            Err(e.Message);
              }

              bool is_serialized = false;

              try
              {
            XmlSerializer serializer = new XmlSerializer(typeof(ProtocolModel));

            protocol_model_ = (ProtocolModel)serializer.Deserialize(fs);

            is_serialized = true;
            Console.WriteLine("Protocolファイルのコンパイルを開始します。");
              }
              catch (Exception)
              {
            fs.Seek(0, SeekOrigin.Begin);
              }

              try
              {
            XmlSerializer serializer = new XmlSerializer(typeof(EnumModel));

            enum_model_ = (EnumModel)serializer.Deserialize(fs);

            is_serialized = true;
            Console.WriteLine("Enumファイルのコンパイルを開始します。");
              }
              catch (Exception)
              {
            fs.Seek(0, SeekOrigin.Begin);
              }

              if (!is_serialized)
              {
            Err("正しくないファイルです。");
              }
        }
예제 #35
0
파일: Car.cs 프로젝트: Crilexis/Rent-Car
 public Car(EnumCategory category, EnumModel model, int year)
 {
     Category = category;
     Model = model;
     Year = year;
 }
예제 #36
0
        public int Save(int? operation, int? id, EnumModel.TipoPQRS tipo, string asunto, string descripcion, string nombre, string email, bool gestionada, DateTime? fechahora)
        {
            StringBuilder sbQuery = new StringBuilder();

            using (var conn = new SqlConnection(_connectionString))
            using (var cmd = conn.CreateCommand())
            {
                switch (operation)
                {
                    case ((int)Operation.Status.Create):
                        sbQuery.Append("INSERT INTO tblPQRS ");
                        sbQuery.Append("VALUES (            ");
                        sbQuery.Append("      @tipo         ");
                        sbQuery.Append("    , @asunto       ");
                        sbQuery.Append("    , @descripcion  ");
                        sbQuery.Append("    , @nombre       ");
                        sbQuery.Append("    , @email        ");
                        sbQuery.Append("    , @gestionada   ");
                        sbQuery.Append("    , @fechahora    ");
                        sbQuery.Append(")                   ");
                        break;
                    case ((int)Operation.Status.Update):
                        sbQuery.Append("UPDATE tblPQRS                       ");
                        sbQuery.Append("SET                                  ");
                        sbQuery.Append("      intTipoPQRS = @tipo            ");
                        sbQuery.Append("    , strAsunto= @asunto             ");
                        sbQuery.Append("    , strDescripcion = @descripcion  ");
                        sbQuery.Append("    , strNombreUsuario = @nombre     ");
                        sbQuery.Append("    , strEmailUsuario = @email       ");
                        sbQuery.Append("    , bitGestionada = @gestionada    ");
                        sbQuery.Append("    , dtmFechaPQRS = @fechahora      ");
                        sbQuery.Append("WHERE                                ");
                        sbQuery.Append("    intIdPQRS = @id                  ");
                        break;
                }

                conn.Open();
                cmd.CommandText = sbQuery.ToString();
                cmd.Parameters.AddWithValue("@id", id);
                cmd.Parameters.AddWithValue("@tipo", (int)tipo);
                cmd.Parameters.AddWithValue("@asunto", asunto);
                cmd.Parameters.AddWithValue("@descripcion", descripcion);
                cmd.Parameters.AddWithValue("@nombre", nombre);
                cmd.Parameters.AddWithValue("@email", email);
                cmd.Parameters.AddWithValue("@gestionada", (gestionada ? 1 : 0) );
                cmd.Parameters.AddWithValue("@fechahora", fechahora);
                int l_intRec = cmd.ExecuteNonQuery();

                return l_intRec;
            }
        }
        public void EnumDropDownListForUsesModelValueIfNotProvidedInViewData_EnumModel()
        {
            // Arrange
            EnumModel model = new EnumModel { WithDisplay = EnumWithDisplay.Two, };
            HtmlHelper<EnumModel> helper =
                MvcHelper.GetHtmlHelper(new ViewDataDictionary<EnumModel>(model));

            // Act
            MvcHtmlString html = helper.EnumDropDownListFor(m => m.WithDisplay, optionLabel: null);

            // Assert
            Assert.Equal(
                "<select id=\"WithDisplay\" name=\"WithDisplay\">" +
                "<option value=\"0\">First</option>" + Environment.NewLine +
                "<option value=\"1\">Second</option>" + Environment.NewLine +
                "<option selected=\"selected\" value=\"2\">Third</option>" + Environment.NewLine +
                "<option value=\"3\">Fourth</option>" + Environment.NewLine +
                "</select>",
                html.ToHtmlString());
        }
        public void EnumDropDownListForUsesModelValueIfNotProvidedInViewData_Unobtrusive()
        {
            // Arrange
            EnumModel model = new EnumModel { WithDisplay = EnumWithDisplay.Two, };
            HtmlHelper<EnumModel> helper = MvcHelper.GetHtmlHelper(new ViewDataDictionary<EnumModel>(model));
            helper.ViewContext.ClientValidationEnabled = true;
            helper.ViewContext.UnobtrusiveJavaScriptEnabled = true;
            helper.ViewContext.FormContext = new FormContext();
            helper.ClientValidationRuleFactory = (name, metadata) =>
                new[] { new ModelClientValidationRule { ValidationType = "type", ErrorMessage = "error" } };

            // Act
            MvcHtmlString html = helper.EnumDropDownListFor(m => m.WithDisplay, optionLabel: null);

            // Assert
            Assert.Equal(
                "<select data-val=\"true\" data-val-type=\"error\" id=\"WithDisplay\" name=\"WithDisplay\">" +
                "<option value=\"0\">First</option>" + Environment.NewLine +
                "<option value=\"1\">Second</option>" + Environment.NewLine +
                "<option selected=\"selected\" value=\"2\">Third</option>" + Environment.NewLine +
                "<option value=\"3\">Fourth</option>" + Environment.NewLine +
                "</select>",
                html.ToHtmlString());
        }
        public void EnumDropDownListForUsesModelValueIfNotProvidedInViewData_EnumWithoutAnything()
        {
            // Arrange
            EnumModel model = new EnumModel { WithoutAnything = (EnumWithoutAnything)23, };
            HtmlHelper<EnumModel> helper =
                MvcHelper.GetHtmlHelper(new ViewDataDictionary<EnumModel>(model));

            // Act
            MvcHtmlString html = helper.EnumDropDownListFor(m => m.WithoutAnything, optionLabel: "My Label");

            // Assert
            Assert.Equal(
                "<select id=\"WithoutAnything\" name=\"WithoutAnything\">" +
                "<option selected=\"selected\" value=\"23\">My Label</option>" + Environment.NewLine +
                "</select>",
                html.ToHtmlString());
        }