public void Generate(Stream stream, string @namespace, ResxResult mainResx, ResxResult localizedResx = null) { using (IndentWriter w = new IndentWriter(stream)) { WriteModule(w, 0, @namespace, mainResx, localizedResx); } }
public string Generate(string @namespace, ResxResult mainResx, ResxResult localizedResx = null) { var b = new TypeScriptBuilder(); WriteModule(b, 0, @namespace, mainResx, localizedResx); return(b.ToString()); }
protected override byte[] GenerateCode(string inputFileName, string inputFileContent) { byte[] mainFileBytes = null; var targetItem = Dte.Solution.FindProjectItem(inputFileName); if (targetItem != null) { var targetFileInfo = new FileInfo(targetItem.FileNames[0]); var resxResults = GetRelatedFilesNames(inputFileName).Select(x => resxResultProvider.GetResult(x)); List <string> generatedFileNames = new List <string>(); ResxResult structureItem = null; foreach (var item in resxResults) { var fileName = GetFileName(targetFileInfo, item); if (item.IsDefault) { structureItem = item; using (var ms = new MemoryStream()) { resxTypeScriptGenerator.Generate(ms, FileNamespace, structureItem, item); mainFileBytes = ms.ToArray(); } } else { using (var fs = File.Open(fileName, FileMode.Create, FileAccess.Write)) { resxTypeScriptGenerator.Generate(fs, FileNamespace, structureItem, item); } // only add the file to the project for localized files // visual studio handles the addition of the default file targetItem.ProjectItems.AddFromFile(fileName); } generatedFileNames.Add(fileName); } // ensure only generated files are child-items foreach (ProjectItem item in targetItem.ProjectItems) { if (!generatedFileNames.Contains(item.FileNames[0])) { item.Delete(); } } } return(mainFileBytes); }
private void WriteInterface(IIdentWriter w, int i, ResxResult mainResx) { w.WL(i, "export interface I{0} {{", mainResx.Name); foreach (var item in mainResx.Entries.OrderBy(x => x.Key)) { w.WL(i + 1, "{0};", GetKeySignature(item.Key, item.Value)); } w.WL(i, "}"); }
private string GetFileName(FileInfo targetFileInfo, ResxResult result) { string fileName = ""; if (result.IsDefault) { fileName = string.Format("{0}.ts", result.Name); } else { fileName = string.Format("{0}.{1}.ts", result.Name, result.Culture); } return(Path.Combine(targetFileInfo.Directory.FullName, fileName)); }
public override ResxUploadResponseBody ExecuteCore() { string partialPath = CustomerEnumDesc.GetResxTypePath(request.ResxType, request.UserId); ResxHandler resx = new ResxHandler { SaveLocalDirectory = string.Format("{0}{1}", AppConfigManager.UploadDirectory, partialPath), AccessUrl = string.Format("{0}{1}", ResxConfigManager.FileAccessUrl, partialPath) }; ResxResult result = resx.Upload(request.Files.FirstOrDefault()); return(new ResxUploadResponseBody() { ResxResult = result }); }
private void WriteImplementation(IIdentWriter w, int i, ResxResult mainResx, ResxResult localizedResx) { w.WL(i, "class {0}Impl {{", mainResx.Name); foreach (var mainItem in mainResx.Entries.OrderBy(x => x.Key)) { ResxValue contentItem = null; if (!localizedResx.Entries.TryGetValue(mainItem.Key, out contentItem)) { contentItem = mainItem.Value; } WriteResourceFunction(w, i + 1, mainItem.Key, mainItem.Value, contentItem); } w.WL(i, "}"); }
private void WriteModule(IIdentWriter w, int i, string @namespace, ResxResult mainResx, ResxResult localizedResx) { w.WL(i, "module {0} {{", @namespace); if (localizedResx == null || localizedResx.IsDefault) { WriteInterface(w, i + 1, mainResx); w.LineBreak(); } WriteImplementation(w, i + 1, mainResx, localizedResx ?? mainResx); w.LineBreak(); WriteInstanceInitialization(w, i + 1, localizedResx ?? mainResx); w.WL(i, "}"); }
public ActionResult Deploy(AppExt model) { string error; var file = Request.Form.Files.FirstOrDefault(); if (file != null) { ResxHandler resx = new ResxHandler(); resx.ResxTypes = new List <string>() { ".apk" }; resx.SaveLocalDirectory = string.Format("{0}/apkversion", AppConfigManager.UploadDirectory); resx.AccessUrl = string.Format("{0}/apkversion", ResxConfigManager.FileAccessUrl); ResxResult result = resx.Upload(file); if (result.Success) { model.Size = result.ResxSize; model.DownloadUrl = result.ResxAccessUrl; } else { error = result.Message; return(Json(new { state = -1, error = result.Message })); } } int ret = appService.AppVersionAction(model, out error); if (ret > 0) { return(Json(new { state = 1 })); } else { return(Json(new { state = -1, error })); } }
private void WriteInstanceInitialization(IIdentWriter w, int i, ResxResult content) { w.WL(i, "{1}{0}: I{0} = new {0}Impl();", content.Name, content.IsDefault ? "export var " : ""); }