Exemplo n.º 1
0
 public void Generate(Stream stream, string @namespace, ResxResult mainResx, ResxResult localizedResx = null)
 {
     using (IndentWriter w = new IndentWriter(stream))
     {
         WriteModule(w, 0, @namespace, mainResx, localizedResx);
     }
 }
Exemplo n.º 2
0
        public string Generate(string @namespace, ResxResult mainResx, ResxResult localizedResx = null)
        {
            var b = new TypeScriptBuilder();

            WriteModule(b, 0, @namespace, mainResx, localizedResx);

            return(b.ToString());
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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, "}");
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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
            });
        }
Exemplo n.º 7
0
        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, "}");
        }
Exemplo n.º 8
0
        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, "}");
        }
Exemplo n.º 9
0
        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 }));
            }
        }
Exemplo n.º 10
0
 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 " : "");
 }