예제 #1
0
        public static void UploadJson(string fileName, Stream fileStream, string projectName, string moduleName)
        {
            var culture = GetCultureFromFileName(fileName);

            string jsonString;

            using (var reader = new StreamReader(fileStream))
            {
                jsonString = reader.ReadToEnd();
            }
            var jsonObj = JsonConvert.DeserializeObject <Dictionary <string, string> >(jsonString);

            var          fileID       = ResourceData.AddFile(fileName, projectName, moduleName);
            const string resourceType = "text";

            foreach (var key in jsonObj.Keys)
            {
                var word = new ResWord
                {
                    Title     = key,
                    ValueFrom = jsonObj[key],
                    ResFile   = new ResFile {
                        FileID = fileID
                    }
                };
                if (culture != "Neutral")
                {
                    var neutralKey = new ResWord
                    {
                        Title     = key,
                        ValueFrom = jsonObj[key],
                        ResFile   = new ResFile {
                            FileID = fileID
                        }
                    };

                    ResourceData.GetValueByKey(neutralKey, "Neutral");
                    if (string.IsNullOrEmpty(neutralKey.ValueTo))
                    {
                        continue;
                    }
                }

                ResourceData.AddResource(culture, resourceType, DateTime.UtcNow, word, true, "Console");
            }
        }
예제 #2
0
        public static void UploadJson(string fileName, Stream fileStream, string projectName, string moduleName)
        {
            var culture = GetCultureFromFileName(fileName);

            string jsonString;

            using (var reader = new StreamReader(fileStream))
            {
                jsonString = reader.ReadToEnd();
            }

            var jsonObj = new Dictionary <string, string>();

            if (Path.GetExtension(fileName) == ".xml")
            {
                var doc = new XmlDocument();
                doc.LoadXml(jsonString);
                var list = doc.SelectNodes("//resources//string");
                if (list != null)
                {
                    try
                    {
                        var nodes = list.Cast <XmlNode>().ToList();
                        jsonObj = nodes.ToDictionary(r => r.Attributes["name"].Value, r => r.InnerText);
                    }
                    catch (Exception e)
                    {
                        LogManager.GetLogger("ASC").ErrorFormat("parse xml " + fileName, e);
                    }
                }
            }
            else
            {
                var reader = JObject.Parse(jsonString).CreateReader();
                while (reader.Read())
                {
                    if (reader.TokenType == JsonToken.String)
                    {
                        var key = reader.Path;
                        key = Regex.Replace(Regex.Replace(key, @"\[\'(\s)*", ".$1"), @"(\s)*\'\]", "$1").TrimStart('.').TrimEnd('.');

                        if (reader.Value != null)
                        {
                            var value = reader.Value.ToString();
                            jsonObj.Add(key, value);
                        }
                    }
                }
            }

            var          fileID       = ResourceData.AddFile(fileName, projectName, moduleName);
            const string resourceType = "text";

            foreach (var key in jsonObj.Keys)
            {
                var word = new ResWord
                {
                    Title     = key,
                    ValueFrom = jsonObj[key],
                    ResFile   = new ResFile {
                        FileID = fileID
                    }
                };
                if (culture != "Neutral")
                {
                    var neutralKey = new ResWord
                    {
                        Title     = key,
                        ValueFrom = jsonObj[key],
                        ResFile   = new ResFile {
                            FileID = fileID
                        }
                    };

                    ResourceData.GetValueByKey(neutralKey, "Neutral");
                    if (string.IsNullOrEmpty(neutralKey.ValueTo))
                    {
                        continue;
                    }
                }

                ResourceData.AddResource(culture, resourceType, DateTime.UtcNow, word, true, "Console");
            }
        }
예제 #3
0
        public static void UploadJson(string fileName, Stream fileStream, string projectName, string moduleName)
        {
            var culture = GetCultureFromFileName(fileName);

            string jsonString;

            using (var reader = new StreamReader(fileStream))
            {
                jsonString = reader.ReadToEnd();
            }

            var jsonObj = new Dictionary <string, string>();

            if (Path.GetExtension(fileName) == ".xml")
            {
                var doc = new XmlDocument();
                doc.LoadXml(jsonString);
                var list = doc.SelectNodes("//resources//string");
                if (list != null)
                {
                    try
                    {
                        var nodes = list.Cast <XmlNode>().ToList();
                        jsonObj = nodes.ToDictionary(r => r.Attributes["name"].Value, r => r.InnerText);
                    }
                    catch (Exception e)
                    {
                        log4net.LogManager.GetLogger("ASC").ErrorFormat("parse xml " + fileName, e);
                    }
                }
            }
            else
            {
                jsonObj = JsonConvert.DeserializeObject <Dictionary <string, string> >(jsonString);
            }

            var          fileID       = ResourceData.AddFile(fileName, projectName, moduleName);
            const string resourceType = "text";

            foreach (var key in jsonObj.Keys)
            {
                var word = new ResWord
                {
                    Title     = key,
                    ValueFrom = jsonObj[key],
                    ResFile   = new ResFile {
                        FileID = fileID
                    }
                };
                if (culture != "Neutral")
                {
                    var neutralKey = new ResWord
                    {
                        Title     = key,
                        ValueFrom = jsonObj[key],
                        ResFile   = new ResFile {
                            FileID = fileID
                        }
                    };

                    ResourceData.GetValueByKey(neutralKey, "Neutral");
                    if (string.IsNullOrEmpty(neutralKey.ValueTo))
                    {
                        continue;
                    }
                }

                ResourceData.AddResource(culture, resourceType, DateTime.UtcNow, word, true, "Console");
            }
        }