private async Task UpdateAppTexts( string org, string repository, string developer, Manatee.Json.Schema.JsonSchema jsonSchema) { JsonSchemaToInstanceModelGenerator converter = new JsonSchemaToInstanceModelGenerator(org, repository, jsonSchema); var newTexts = converter.GetTexts(); var altinnAppGitRepository = _altinnGitRepositoryFactory.GetAltinnAppGitRepository(org, repository, developer); var existingTexts = await altinnAppGitRepository.GetTextResourcesForAllLanguages(); MergeTexts(newTexts, existingTexts); await altinnAppGitRepository.SaveServiceTexts(existingTexts); }
public ActionResult Upload(string org, string service, IFormFile thefile) { if (thefile == null) { throw new ApplicationException("Cannot upload empty file"); } string mainFileName = ContentDispositionHeaderValue.Parse(new StringSegment(thefile.ContentDisposition)).FileName.ToString(); MemoryStream xsdMemoryStream = new MemoryStream(); thefile.OpenReadStream().CopyTo(xsdMemoryStream); xsdMemoryStream.Position = 0; XmlReader reader = XmlReader.Create(xsdMemoryStream, new XmlReaderSettings { IgnoreWhitespace = true }); XDocument mainXsd = XDocument.Load(reader, LoadOptions.None); ServiceMetadata serviceMetadata = null; bool useOldParser = false; if (useOldParser) { var seresParser = new SeresXsdParser(_repository); serviceMetadata = seresParser.ParseXsdToServiceMetadata(org, service, mainXsd, null); } else { xsdMemoryStream.Position = 0; reader = XmlReader.Create(xsdMemoryStream, new XmlReaderSettings { IgnoreWhitespace = true }); XsdToJsonSchema xsdToJsonSchemaConverter = new XsdToJsonSchema(reader, _loggerFactory.CreateLogger <XsdToJsonSchema>()); JsonSchema schemaJsonSchema = xsdToJsonSchemaConverter.AsJsonSchema(); JsonSchemaToInstanceModelGenerator converter = new JsonSchemaToInstanceModelGenerator(org, service, schemaJsonSchema); serviceMetadata = converter.GetServiceMetadata(); HandleTexts(org, service, converter.GetTexts()); } if (_repository.CreateModel(org, service, serviceMetadata, mainXsd)) { return(RedirectToAction("Index", new { org, service })); } return(Json(false)); }
public ActionResult Upload(string org, string app, IFormFile thefile) { if (thefile == null) { throw new ApplicationException("Cannot upload empty file"); } string mainFileName = ContentDispositionHeaderValue.Parse(new StringSegment(thefile.ContentDisposition)).FileName.ToString(); MemoryStream xsdMemoryStream = new MemoryStream(); thefile.OpenReadStream().CopyTo(xsdMemoryStream); xsdMemoryStream.Position = 0; XmlReader reader = XmlReader.Create(xsdMemoryStream, new XmlReaderSettings { IgnoreWhitespace = true }); XDocument mainXsd = XDocument.Load(reader, LoadOptions.None); xsdMemoryStream.Position = 0; reader = XmlReader.Create(xsdMemoryStream, new XmlReaderSettings { IgnoreWhitespace = true }); XsdToJsonSchema xsdToJsonSchemaConverter = new XsdToJsonSchema(reader, _loggerFactory.CreateLogger <XsdToJsonSchema>()); JsonSchema schemaJsonSchema = xsdToJsonSchemaConverter.AsJsonSchema(); JsonSchemaToInstanceModelGenerator converter = new JsonSchemaToInstanceModelGenerator(org, app, schemaJsonSchema); ModelMetadata modelMetadata = converter.GetModelMetadata(); HandleTexts(org, app, converter.GetTexts()); string modelName = Path.GetFileNameWithoutExtension(mainFileName); if (_repository.CreateModel(org, app, modelMetadata, mainXsd, modelName)) { return(RedirectToAction("Index", new { org, app, modelName })); } return(Json(false)); }