Example #1
0
            private IEdmEnumType BuildEdmEnumType(EnumTypeElement enumTypeElement)
            {
                var enumType = new EdmEnumType(_namespaceName, enumTypeElement.ResolveName(), Convert(enumTypeElement.UnderlyingType), false);

                foreach (var member in enumTypeElement.Members)
                {
                    enumType.AddMember(member.Key, new EdmIntegerConstant(member.Value));
                }

                return(enumType);
            }
Example #2
0
            private IEdmEnumType BuildEnumType(EnumTypeElement enumTypeElement)
            {
                IEdmSchemaType enumType;

                if (!_builtTypes.TryGetValue(enumTypeElement.Identity, out enumType))
                {
                    _builtTypes.Add(enumTypeElement.Identity, enumType = BuildEdmEnumType(enumTypeElement));
                }

                return((IEdmEnumType)enumType);
            }
Example #3
0
        private static Type CreateEnum(ModuleBuilder moduleBuilder, EnumTypeElement element)
        {
            var typeName       = element.ResolveName();
            var underlyingType = ConvertType(element.UnderlyingType);

            var typeBuilder = moduleBuilder.DefineEnum(typeName, underlyingType);

            foreach (var member in element.Members)
            {
                typeBuilder.DefineLiteral(member.Key, Convert.ChangeType(member.Value, underlyingType));
            }

            return(typeBuilder.CreateType());
        }
Example #4
0
            private IEdmEnumType ResolveEnumType(EnumTypeElement enumTypeElement)
            {
                var typeName = enumTypeElement.ResolveName();

                IEdmSchemaType enumType;

                if (!_registeredTypes.TryGetValue(typeName, out enumType))
                {
                    _registeredTypes.Add(typeName, enumType = BuildEnumType(typeName, enumTypeElement));

                    AnnotateElement(enumType, enumTypeElement.Identity.Id);
                }

                return((IEdmEnumType)enumType);
            }
            private IEdmEnumType ResolveEnumType(EnumTypeElement enumTypeElement)
            {
                var typeName = enumTypeElement.ResolveName();

                IEdmSchemaType enumType;
                if (!_registeredTypes.TryGetValue(typeName, out enumType))
                {
                    _registeredTypes.Add(typeName, enumType = BuildEnumType(typeName, enumTypeElement));

                    AnnotateElement(enumType, enumTypeElement.Identity.Id);
                }

                return (IEdmEnumType)enumType;
            }
            private IEdmEnumType BuildEnumType(string typeName, EnumTypeElement enumTypeElement)
            {
                var enumType = new EdmEnumType(NamespaceName, typeName, Convert(enumTypeElement.UnderlyingType), false);

                foreach (var member in enumTypeElement.Members)
                {
                    enumType.AddMember(member.Key, new EdmIntegerConstant(member.Value));
                }

                return enumType;
            }
Example #7
0
        public void Update(GameTime gameTime)
        {
            NetIncomingMessage message;

            while ((message = _client.ReadMessage()) != null)
            {
                switch (message.MessageType)
                {
                case NetIncomingMessageType.Data:
                    EnumMessageFromServer typeMessage = (EnumMessageFromServer)message.ReadByte();
                    switch (typeMessage)
                    {
                    case EnumMessageFromServer.Init:
                        _ipEndPoint = message.SenderEndPoint;
                        uint nbElements = message.ReadUInt16();
                        for (int i = 0; i < nbElements; i++)
                        {
                            EnumTypeElement elementType = (EnumTypeElement)message.ReadByte();
                            switch (elementType)
                            {
                            case EnumTypeElement.Loup:
                                break;

                            case EnumTypeElement.Guerrier:
                                break;
                            }
                        }
                        break;

                    case EnumMessageFromServer.Update:
                        int ID            = message.ReadUInt16();
                        var NetworkObject = _networkObjects.FirstOrDefault(p => p != null && p.id == ID);
                        if (NetworkObject != null)
                        {
                            NetworkObject.Synchronise(message);
                        }
                        break;
                    }
                    break;

                case NetIncomingMessageType.StatusChanged:
                    switch (message.SenderConnection.Status)
                    {
                    case NetConnectionStatus.None:
                        break;

                    case NetConnectionStatus.InitiatedConnect:
                        break;

                    case NetConnectionStatus.ReceivedInitiation:
                        break;

                    case NetConnectionStatus.RespondedAwaitingApproval:
                        break;

                    case NetConnectionStatus.RespondedConnect:
                        break;

                    case NetConnectionStatus.Connected:
                        break;

                    case NetConnectionStatus.Disconnecting:
                        break;

                    case NetConnectionStatus.Disconnected:
                        break;

                    default:
                        break;
                    }
                    break;

                case NetIncomingMessageType.DebugMessage:
                    Console.WriteLine(message.ReadString());
                    break;

                default:
                    Console.WriteLine("unhandled message with type: "
                                      + message.MessageType);
                    break;
                }

                _client.Recycle(message);
            }

            foreach (var NetworkObject in _networkObjects)
            {
                NetworkObject.Update(gameTime);
            }
        }
        private static Type CreateEnum(ModuleBuilder moduleBuilder, EnumTypeElement element)
        {
            var typeName = element.ResolveName();
            var underlyingType = ConvertType(element.UnderlyingType);

            var typeBuilder = moduleBuilder.DefineEnum(typeName, underlyingType);

            foreach (var member in element.Members)
            {
                typeBuilder.DefineLiteral(member.Key, Convert.ChangeType(member.Value, underlyingType));
            }

            return typeBuilder.CreateType();
        }
        /// <summary>
        /// Gets the supportive feature information of all the metadata elements.
        /// Note: This method is only used to validate all the terms with enumeration type.
        /// </summary>
        /// <param name="targetShortName">The short name of target element.</param>
        /// <param name="termElement">The term information which will be validated.</param>
        /// <param name="enumTypeElement">The enumeration type template.</param>
        /// <param name="metadataDoc">The metadata document.</param>
        /// <returns>Returns the validation.</returns>
        public static List<KeyValuePair<string, int>> GetSupportiveFeatureInfo(string targetShortName, TermElement termElement, EnumTypeElement enumTypeElement, string metadataDoc)
        {
            if (string.IsNullOrEmpty(targetShortName) || null == termElement || null == enumTypeElement || !metadataDoc.IsXmlPayload())
            {
                return null;
            }

            var metadata = XElement.Parse(metadataDoc);
            string aliasTermName = string.Format("{0}.{1}", termElement.Alias, termElement.Name);
            string namespaceTermName = string.Format("{0}.{1}", termElement.Namespace, termElement.Name);
            List<KeyValuePair<string, int>> result = new List<KeyValuePair<string, int>>();

            for (int i = 0; i < termElement.AppliesTo.Length; i++)
            {
                // Get the annotation information from target element in metadata. (e.g. EntitySet)
                string xPath = string.Format("//*[local-name()='{0}' and @Name='{1}']/*[local-name()='Annotation'][@Term='{2}' or @Term='{3}']/*[local-name()='EnumMember']",
                    termElement.AppliesTo[i],
                    targetShortName,
                    aliasTermName,
                    namespaceTermName);
                var enumMemberElement = metadata.XPathSelectElement(xPath, ODataNamespaceManager.Instance);

                if (null != enumMemberElement)
                {
                    string[] enumMembers = enumMemberElement.Value.Split(' ');

                    foreach (var enumMember in enumMembers)
                    {
                        foreach (var m in enumTypeElement.Members)
                        {
                            if (enumMember.Contains(m.Key))
                            {
                                result.Add(new KeyValuePair<string, int>(m.Key, m.Value));
                            }
                        }
                    }
                }
                else
                {
                    xPath = string.Format("//*[local-name()='{0}' and @Name='{1}']", termElement.AppliesTo[i], targetShortName);
                    var entitySetElement = metadata.XPathSelectElement(xPath, ODataNamespaceManager.Instance);

                    if (null != entitySetElement)
                    {
                        var localAliasNamespace = MetadataHelper.GetAliasAndNamespace(entitySetElement);

                        // Get the annotation information from Annotations element in metadata.
                        xPath = string.Format(
                            "//*[local-name()='Annotations'][@Target='{0}' or @Target='{1}' or @Target='{2}']/*[local-name()='Annotation'][@Term='{3}' or @Term='{4}']/*[local-name()='EnumMember']",
                            targetShortName,
                            string.Format("{0}.{1}", localAliasNamespace.Alias, targetShortName),
                            string.Format("{0}.{1}", localAliasNamespace.Namespace, targetShortName),
                            aliasTermName,
                            namespaceTermName);
                        enumMemberElement = metadata.XPathSelectElement(xPath, ODataNamespaceManager.Instance);

                        if (null != enumMemberElement)
                        {
                            string[] enumMembers = enumMemberElement.Value.Split(' ');

                            foreach (var enumMember in enumMembers)
                            {
                                foreach (var m in enumTypeElement.Members)
                                {
                                    if (enumMember.Contains(m.Key))
                                    {
                                        result.Add(new KeyValuePair<string, int>(m.Key, m.Value));
                                    }
                                }
                            }
                        }
                    }
                }

                if (result.Any())
                {
                    return result;
                }
            }

            return result;
        }
Example #10
0
            private IEdmEnumType BuildEnumType(EnumTypeElement enumTypeElement)
            {
                IEdmSchemaType enumType;
                if (!_builtTypes.TryGetValue(enumTypeElement.Identity, out enumType))
                {
                    _builtTypes.Add(enumTypeElement.Identity, enumType = BuildEdmEnumType(enumTypeElement));
                }

                return (IEdmEnumType)enumType;
            }