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)); }
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); }
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; }
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); } }