コード例 #1
0
ファイル: ModelGenerator.cs プロジェクト: biapar/ovhapicil
 public ModelType(Model model)
 {
     Model = model;
 }
コード例 #2
0
ファイル: ModelGenerator.cs プロジェクト: biapar/ovhapicil
        private static CodeTypeReference GetPropertyType(Model model, Property prop)
        {
            CodeTypeReference result = null;
            string type = Util.GetType(prop.Type);

            bool isString = false;

            if (type.Contains('.'))
            {
                result = new CodeTypeReference(type);
            }
            else if (model.Generics != null && model.Generics.Contains(type))
            {
                result =  new CodeTypeReference(type, CodeTypeReferenceOptions.GenericTypeParameter);
            }
            else
            {
                switch (type)
                {
                    case "phoneNumber":
                    case "string":
                        result = new CodeTypeReference(typeof(string));
                        isString = true;
                        break;
                    case "long":
                        result = new CodeTypeReference(typeof(long));
                        break;
                    case "int":
                        result = new CodeTypeReference(typeof(int));
                        break;
                    case "DateTime":
                        result = new CodeTypeReference(typeof(DateTime));
                        break;
                    case "bool":
                        result = new CodeTypeReference(typeof(bool));
                        break;
                    case "double":
                        result = new CodeTypeReference(typeof(double));
                        break;
                    case "string[]":
                        result = new CodeTypeReference(typeof(string[]));
                        break;
                    case "long[]":
                        result = new CodeTypeReference(typeof(long[]));
                        break;
                    default:
                        result = new CodeTypeReference(typeof(string));
                        isString = true;
                        break;
                }
            }

            if (prop.CanBeNull && !isString && !type.EndsWith("[]") && !type.Contains("."))
            {
                CodeTypeReference tmp = new CodeTypeReference(typeof (Nullable<>));
                tmp.TypeArguments.Add(result);
                result = tmp;
            }

            return result;
        }
コード例 #3
0
ファイル: Util.cs プロジェクト: biapar/ovhapicil
 public static string GetNamespace(Model model)
 {
     return ModelsNamespaces + Util.FixCase(Util.FixNamespace(model.Namespace));
 }
コード例 #4
0
ファイル: ModelGenerator.cs プロジェクト: biapar/ovhapicil
 private static CodeTypeDeclaration CreateEnum(string name, Model model)
 {
     var type = new CodeTypeDeclaration(Util.FixCase(name));
     type.IsEnum = true;
     AddSummary(type.Comments, model.Description);
     foreach (var val in model.Enum)
     {
         var member = new CodeMemberField(type.Name, Util.GetEnumValue(val));
         AddEnumMemberAttribute(member.CustomAttributes, val);
         type.Members.Add(member);
     }
     return type;
 }
コード例 #5
0
ファイル: Util.cs プロジェクト: biapar/ovhapicil
        public static string GetGenericsParameters(Model model)
        {
            StringBuilder result = new StringBuilder();

            if (model.Generics != null && model.Generics.Length > 0)
            {
                result.Append('<');
                for (int i = 0; i < model.Generics.Length; i++)
                {
                    if (i > 0)
                    {
                        result.Append(',');
                    }
                    result.Append(model.Generics[i]);
                }
                result.Append('>');
            }

            return result.ToString();
        }