// POST: api/Entity public IHttpActionResult Post([FromBody]Entity entity) { try { var classGenerator = new JsonClassGenerator(); classGenerator.MainClass = entity.Name; classGenerator.Example = entity.Json; var project = string.IsNullOrEmpty(entity.Project) ? "Global" : entity.Project; classGenerator.Namespace = project + "." + Config.Models; classGenerator.TargetFolder = Path.Combine(Config.ProjectRepository, project, Config.Models); Directory.CreateDirectory(classGenerator.TargetFolder); classGenerator.UseProperties = true; classGenerator.UsePascalCase = true; if (entity.EnableDB) classGenerator.GenerateIdField = true; var entities = classGenerator.GenerateClasses(); if (entity.EnableDB) { addDBContext(entity.Project, entities); } return Ok("Entity created successfully"); } catch(Exception ex) { return InternalServerError(ex); } }
void PasteJson(Clipboard c, string text) { if (string.IsNullOrEmpty (text)) { InsertCSharp (string.Empty); return; } var gen = new JsonClassGenerator { Example = text, MainClass = "RootObject", UseProperties = true, CodeWriter = new CSharpCodeWriter () }; try { using (var sw = new StringWriter ()) { gen.OutputStream = sw; gen.GenerateClasses (); sw.Flush (); var generatedString = sw.ToString (); InsertCSharp (generatedString); } } catch (Exception ex) { Console.WriteLine (ex.Message); MessageService.ShowWarning (string.Format ("Invalid JSON: {0}", ex.Message)); } gen = null; }
private string Prepare(string JSON, string classname, int language, bool nest, bool pascal, string propertyAttribute, bool hasGetSet=false) { if (string.IsNullOrEmpty(JSON)) { return null; } ICodeWriter writer; if (language == 1) writer = new CSharpCodeWriter(); else if (language == 2) writer = new VisualBasicCodeWriter(); else if (language == 3) writer = new TypeScriptCodeWriter(); else if(language == 4) writer = new SqlCodeWriter(); else if(language == 5) writer = new JavaCodeWriter(); else writer = new PhpCodeWriter(); var gen = new JsonClassGenerator(); gen.Example = JSON; gen.InternalVisibility = false; gen.CodeWriter = writer; gen.ExplicitDeserialization = false; if (nest) gen.Namespace = "JSONUtils"; else gen.Namespace = null; gen.NoHelperClass = false; gen.SecondaryNamespace = null; gen.UseProperties = (language != 5 && language != 6) || hasGetSet; gen.MainClass = classname; gen.UsePascalCase = pascal; gen.PropertyAttribute = propertyAttribute; gen.UseNestedClasses = nest; gen.ApplyObfuscationAttributes = false; gen.SingleFile = true; gen.ExamplesInDocumentation = false; gen.TargetFolder = null; gen.SingleFile = true; using (var sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); return sw.ToString(); } }
public void GenerateClasses(string nameSpace) { var numSamples = NumRowsToSample; _generatedClasses = GetInputFiles() .Select(f => { // TODO: Be a better error handler try { var fs = new FileStream(f, FileMode.Open); var sr = new StreamReader(fs); var jtr = new JsonTextReader(sr); var examples = Enumerable .Range(0, numSamples) .Select(_ => { while (jtr.Read()) if (jtr.TokenType == JsonToken.StartObject) return JObject.Load(jtr).ToString(); return null; }) .Where(json => json != null); var examplesJson = String.Format("[{0}]", String.Join(",\r\n", examples)); jtr.Close(); sr.Close(); fs.Close(); var className = Path.GetFileNameWithoutExtension(f).SanitiseClassName(); var finalNamespace = nameSpace + "." + className + "Input"; var outputStream = new MemoryStream(); var outputWriter = new StreamWriter(outputStream); var jsg = new JsonClassGenerator { Example = examplesJson, Namespace = finalNamespace, MainClass = className, OutputStream = outputWriter, NoHelperClass = true, UseProperties = true, GeneratePartialClasses = true }; jsg.GenerateClasses(); outputWriter.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var classDef = new StreamReader(outputStream) .ReadToEnd() .Replace("IList<", "List<"); classDef = classDef.Substring(classDef.IndexOf(String.Format("namespace {0}", nameSpace), StringComparison.Ordinal)); NamespacesToAdd.Add(finalNamespace); return new JsonFileGeneratedClass(this) { Namespace = finalNamespace, ClassName = className, DataFilePath = f, ClassDefinition = classDef, Success = true }; } catch (Exception e) { return new JsonFileGeneratedClass(this) { DataFilePath = f, Success = false, Error = e }; } }) .ToList(); }
public void GenerateClasses(string nameSpace) { try { var className = Name.SanitiseClassName(); var finalNamespace = nameSpace + "." + className + "Input"; var outputStream = new MemoryStream(); var outputWriter = new StreamWriter(outputStream); var jsg = new JsonClassGenerator { Example = Json, Namespace = finalNamespace, MainClass = className, OutputStream = outputWriter, NoHelperClass = true, UseProperties = true, GeneratePartialClasses = true }; jsg.GenerateClasses(); outputWriter.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var classDef = new StreamReader(outputStream) .ReadToEnd() .Replace("IList<", "List<"); classDef = classDef.Substring(classDef.IndexOf(String.Format("namespace {0}", nameSpace), StringComparison.Ordinal)); NamespacesToAdd.Add(finalNamespace); _generatedClass = new JsonTextGeneratedClass(this) { Namespace = finalNamespace, ClassName = className, ClassDefinition = classDef, Success = true }; } catch (Exception e) { _generatedClass = new JsonTextGeneratedClass(this) { Success = false, Error = e }; } }
public void GenerateClasses(string nameSpace) { try { var req = (HttpWebRequest) HttpWebRequest.Create(Url); req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; req.UserAgent = @"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"; var examplesJson = ""; using (var sr = new StreamReader(req.GetResponse().GetResponseStream())) examplesJson = sr.ReadToEnd(); var className = Name.SanitiseClassName(); var finalNamespace = nameSpace + "." + className + "Input"; var outputStream = new MemoryStream(); var outputWriter = new StreamWriter(outputStream); var jsg = new JsonClassGenerator { Example = examplesJson, Namespace = finalNamespace, MainClass = className, OutputStream = outputWriter, NoHelperClass = true, UseProperties = true, GeneratePartialClasses = true }; jsg.GenerateClasses(); outputWriter.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var classDef = new StreamReader(outputStream) .ReadToEnd() .Replace("IList<", "List<"); classDef = classDef.Substring(classDef.IndexOf(String.Format("namespace {0}", nameSpace), StringComparison.Ordinal)); NamespacesToAdd.Add(finalNamespace); GeneratedClasses = new List<IGeneratedClass> { new JsonUrlGeneratedClass(this) { Namespace = finalNamespace, ClassName = className, Url = Url, ClassDefinition = classDef, Success = true } }; } catch (Exception e) { GeneratedClasses = new List<IGeneratedClass> { new JsonUrlGeneratedClass(this) { Url = Url, Success = false, Error = e } }; } }