예제 #1
0
        //todo
        internal static async Task <IPocoGenerator> GenerateModel(OdataConnectionString connectionString,
                                                                  PocoSetting setting)
        {
            var metaData = await MetaDataReader.LoadMetadataAsync(connectionString);

            IPocoGenerator generator = Create(metaData, setting);

            return(generator);
        }
예제 #2
0
        /// <summary>
        /// Generate CSharp code from xml string
        /// </summary>
        /// <param name="xmlContent"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException"></exception>
        public string Generate(string xmlContent)
        {
            if (string.IsNullOrEmpty(xmlContent))
            {
                throw new ArgumentNullException();
            }
            MetaData = MetaDataReader.LoadMetaDataFromXml(xmlContent);
            var gen = PocoFactory.GeneratePoco(MetaData, Setting);

            CodeText  = gen.ToString();
            ClassList = gen.ClassList;
            Debug.WriteLine(CodeText);
            return(CodeText);
        }
예제 #3
0
        public async Task <string> GenerateAsync(Uri uri, string user = "", string password = "")
        {
            //if (string.IsNullOrEmpty(uri.AbsoluteUri))
            //    throw new ArgumentNullException();
            //  MetaData = await MetaDataReader.LoadMetaDataHttpAsync(ServiceUri, User, Password);
            MetaData = await MetaDataReader.LoadMetaDataHttpAsync(uri, user, password);

            var gen = PocoFactory.GeneratePoco(MetaData, Setting);

            ClassList = gen.ClassList;
            CodeText  = gen.ToString();
            Debug.WriteLine(CodeText);
            return(CodeText);
        }
예제 #4
0
        //public O2P Generate(string fname = "poco.cs")
        //{
        //    Generate(Setting);
        //    File.WriteAllText(fname, CodeText);
        //    return this;
        //}

        public O2P Generate(string fname = "meta.xml") //PocoSetting pocoSetting)
        {
            if (Url == null)
            {
                throw new NullReferenceException("Url is empty");
            }

            _metaDataReader = string.IsNullOrEmpty(User)
            ? new MetaDataReader(Url)
            : new MetaDataReader(Url, User, Password);
            Console.WriteLine("o2p generate key: {0}", Setting.AddKeyAttribute);
            var gen = _metaDataReader.Generate(Setting);

            CodeText = gen.ToString();
            File.WriteAllText(fname, CodeText);
            //ClassList = gen.ClassDictionary.Select(kvp => kvp.Value).ToList();
            ClassList = gen.ClassList;
            return(this);
        }
예제 #5
0
        //public O2P Generate(string fname = "poco.cs")
        //{
        //    Generate(Setting);
        //    File.WriteAllText(fname, CodeText);
        //    return this;
        //}

        public O2P Generate(string fname = "meta.xml") //PocoSetting pocoSetting)
        {
           
            if (Url == null)
                throw new NullReferenceException("Url is empty");

            _metaDataReader = string.IsNullOrEmpty(User)
            ? new MetaDataReader(Url)
            : new MetaDataReader(Url, User, Password);
            Console.WriteLine("o2p generate key: {0}", Setting.AddKeyAttribute);
            var gen = _metaDataReader.Generate(Setting);
            
            CodeText = gen.ToString();
            File.WriteAllText(fname, CodeText);
            //ClassList = gen.ClassDictionary.Select(kvp => kvp.Value).ToList();
            ClassList = gen.ClassList;
            return this;
        }