예제 #1
0
        public static BaseParameterMetadata MapToBase(DBParameterModel parameterMetadata)
        {
            BaseParameterMetadata parameterModel = new BaseParameterMetadata
            {
                ParameterName = parameterMetadata.Name,
                TypeMetadata  = DBTypeMapper.EmitReferenceDTG(parameterMetadata.TypeMetadata),
            };

            return(parameterModel);
        }
예제 #2
0
        public static DBParameterModel MapToDB(BaseParameterMetadata parameterMetadata)
        {
            DBParameterModel parameterModel = new DBParameterModel
            {
                Name         = parameterMetadata.ParameterName,
                TypeMetadata = DBTypeMapper.EmitReferenceDatabase(parameterMetadata.TypeMetadata),
            };

            return(parameterModel);
        }
예제 #3
0
 public ParameterMetadata MapUp(BaseParameterMetadata model)
 {
     ParameterMetadata parameterModel = new ParameterMetadata();
     parameterModel.Name = model.Name;
     Type type = model.GetType();
     PropertyInfo typeProperty = type.GetProperty("Type", 
         BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
     BaseTypeMetadata typeModel = (BaseTypeMetadata)typeProperty?.GetValue(model);
     if (typeModel != null)
         parameterModel.Type = TypeModelMapper.EmitType(typeModel);
     return parameterModel;
 }
예제 #4
0
        public BaseMethodMetadata MapUp()
        {
            BaseMethodMetadata MethodMetadataDTO = new BaseMethodMetadata();

            MethodMetadataDTO.MethodName = m_Name;
            if (m_GenericArguments != null)
            {
                List <BaseTypeMetadata> GenericArgumentsDTO = new List <BaseTypeMetadata>();
                foreach (TypeMetadata metadata in m_GenericArguments)
                {
                    BaseTypeMetadata baseTypeMetadata;
                    if (BaseTypeMetadata.TypeDictionary.ContainsKey(metadata.m_typeName))
                    {
                        baseTypeMetadata = BaseTypeMetadata.TypeDictionary[metadata.m_typeName];
                    }
                    else
                    {
                        baseTypeMetadata = metadata.MapUp();
                    }
                    GenericArgumentsDTO.Add(baseTypeMetadata);
                }
                MethodMetadataDTO.GenericArguments = GenericArgumentsDTO;
            }
            MethodMetadataDTO.Modifiers = new Tuple <AccessLevel, AbstractEnum, StaticEnum, VirtualEnum>(m_Modifiers.Item1, m_Modifiers.Item2, m_Modifiers.Item3, m_Modifiers.Item4);

            if (m_ReturnType != null)
            {
                if (BaseTypeMetadata.TypeDictionary.ContainsKey(m_ReturnType.m_typeName))
                {
                    MethodMetadataDTO.ReturnType = BaseTypeMetadata.TypeDictionary[m_ReturnType.m_typeName];
                }
                else
                {
                    MethodMetadataDTO.ReturnType = m_ReturnType.MapUp();
                }
            }
            MethodMetadataDTO.Extension = m_Extension;
            if (m_Parameters != null)
            {
                List <BaseParameterMetadata> ParameterDTO = new List <BaseParameterMetadata>();
                foreach (ParameterMetadata metadata in m_Parameters)
                {
                    BaseParameterMetadata baseParameterMetadata = metadata.MapUp();
                    ParameterDTO.Add(baseParameterMetadata);
                }
                MethodMetadataDTO.Parameters = ParameterDTO;
            }
            return(MethodMetadataDTO);
        }
예제 #5
0
 public ParameterMetadata(BaseParameterMetadata parameterMetadata)
 {
     m_Name = parameterMetadata.ParameterName;
     if (parameterMetadata.TypeMetadata != null)
     {
         if (TypeMetadata.m_typesMetadata.ContainsKey(parameterMetadata.TypeMetadata.TypeName))
         {
             m_TypeMetadata = TypeMetadata.m_typesMetadata[parameterMetadata.TypeMetadata.TypeName];
         }
         else
         {
             m_TypeMetadata = new TypeMetadata(parameterMetadata.TypeMetadata);
         }
     }
 }
예제 #6
0
        public BaseParameterMetadata MapUp()
        {
            BaseParameterMetadata ParameterMetadataDTO = new BaseParameterMetadata();

            ParameterMetadataDTO.ParameterName = m_Name;
            if (m_TypeMetadata != null)
            {
                if (BaseTypeMetadata.TypeDictionary.ContainsKey(m_TypeMetadata.m_typeName))
                {
                    ParameterMetadataDTO.TypeMetadata = BaseTypeMetadata.TypeDictionary[m_TypeMetadata.m_typeName];
                }
                else
                {
                    ParameterMetadataDTO.TypeMetadata = m_TypeMetadata.MapUp();
                }
            }
            return(ParameterMetadataDTO);
        }
예제 #7
0
 public XMLParameterModel(BaseParameterMetadata baseParameter)
 {
     ParameterName = baseParameter.ParameterName;
     TypeMetadata  = XMLTypeModel.GetOrAdd(baseParameter.TypeMetadata);
 }