コード例 #1
0
ファイル: StringsFileSaver.cs プロジェクト: Cybrosys/Sandbox
 public Task SaveAsync(StringsFile stringsFile)
 {
     if (stringsFile == null) throw new ArgumentNullException(nameof(stringsFile));
     if (string.IsNullOrWhiteSpace(stringsFile.FilePath)) throw new ArgumentNullException(nameof(stringsFile.FilePath));
     var document = new XDocument(new XDeclaration("1.0", "utf-8", null));
     _writer.WriteAll(document, stringsFile);
     return Task.Run(() => document.Save(stringsFile.FilePath));
 }
コード例 #2
0
ファイル: StringsFileWriter.cs プロジェクト: Cybrosys/Sandbox
 public void WriteAll(XDocument document, StringsFile stringsFile)
 {
     if (document == null) throw new ArgumentNullException(nameof(document));
     if (stringsFile == null) throw new ArgumentNullException(nameof(stringsFile));
     var rootElement = new XElement("resources");
     foreach (var row in stringsFile.Rows)
         rootElement.Add(new XElement("string", new XAttribute("name", row.Key), row.Value));
     document.Add(rootElement);
 }
コード例 #3
0
 private DataColumn FindColumn(DataTable dataTable, StringsFile stringsFile)
 {
     string languageCodeOrDefault = string.IsNullOrWhiteSpace(stringsFile.LanguageCode) ? "Default" : stringsFile.LanguageCode;
     foreach (DataColumn column in dataTable.Columns)
     {
         if ((string)column.ExtendedProperties[nameof(stringsFile.LanguageCode)] == languageCodeOrDefault)
             return column;
     }
     return null;
 }
コード例 #4
0
        private void Map(DataColumn column, StringsFile stringsFile)
        {
            if (column == null || stringsFile == null) return;

            stringsFile.Rows.Clear();
            var rows = column.Table.Rows;
            foreach (DataRow row in rows)
            {
                var key = row[0]?.ToString();
                var value = row[column]?.ToString();
                if (string.IsNullOrWhiteSpace(key) || string.IsNullOrWhiteSpace(value))
                    continue;

                stringsFile.Rows.Add(key, value);
            }
        }