public static void ToRow(TranslationVal bean, TranslationRow row) { if (bean == null) { return; } row.CultureId = bean.CultureId; row.Key = bean.Key; row.Value = bean.Value; }
/// <summary> /// Create data in database /// </summary> /// <param name="translation">Data</param> /// <returns>insert data</returns> public TranslationVal Create(TranslationVal translation) { if (translation == null || translation.CultureId < 0 || string.IsNullOrWhiteSpace(translation.Key)) { return(null); } var row = new TranslationRow(); TranslationTransformer.ToRow(translation, row); _dbContext.Insert(row); return(TranslationTransformer.ToBean(row)); }
internal static TranslationVal ToBean(TranslationRow row) { if (row == null) { return(null); } var bean = new TranslationVal(); bean.CultureId = row.CultureId; bean.Key = row.Key; bean.Value = row.Value; return(bean); }
public static List <TranslationRow> LoadRows(IXLWorksheet worksheet) { var result = new List <TranslationRow>(); var cultures = ReadCultures(worksheet); var commentColumnIndexes = cultures.Select(x => x.CommentColumnIndex); var textColumnIndexes = cultures.Select(x => x.TextColumnIndex); int lastColumn = commentColumnIndexes.Concat(textColumnIndexes).Max(x => x); foreach (var row in worksheet.RowsUsed().Skip(1)) { var textValues = row.Cells(1, lastColumn + 1).Select(cell => (cell.Value != null ? cell.Value.ToString() : null)).ToList <String>(); if (textValues.Any()) { var customer = new TranslationRow(); customer.ID = textValues[0]; customer.Key = textValues[1]; foreach (var culture in cultures) { if (culture.TextColumnIndex > 0 && culture.TextColumnIndex < textValues.Count && !String.IsNullOrWhiteSpace(textValues[culture.TextColumnIndex])) { customer.Translations.Add(culture.Culture, textValues[culture.TextColumnIndex]); } if (culture.CommentColumnIndex > 0 && culture.CommentColumnIndex < textValues.Count && !String.IsNullOrWhiteSpace(textValues[culture.CommentColumnIndex])) { customer.Comments.Add(culture.Culture, textValues[culture.CommentColumnIndex]); } } result.Add(customer); } else { break; } } return(result); }
public static void UpdateInDB(string key, string value, ApplicationDbContext dbContext = null, int cultureId = -1) { if (dbContext == null) { dbContext = new ApplicationDbContext(); } var localizer = GetLocalizer() as StringLocalizer; localizer.RemoveTranslationInDictionnary("DB_" + key); int currentCultureId; if (cultureId == -1) { currentCultureId = GetCurrentCultureId(); } else { currentCultureId = cultureId; } TranslationRow row = dbContext.Translation.Where(t => t.CultureId == currentCultureId && t.Key.ToLower() == key.ToLower()).FirstOrDefault(); if (row == null) { row = new TranslationRow(); row.CultureId = currentCultureId; row.Key = key; row.Value = value; dbContext.Translation.Add(row); } else { row.Value = value; } dbContext.SaveChanges(); }
public static List<TranslationRow> LoadRows(IXLWorksheet worksheet) { var result = new List<TranslationRow>(); var cultures = ReadCultures(worksheet).ToList(); foreach (var row in worksheet.RowsUsed().Skip(1)) { var textValues = row.Cells(1, (cultures.Count * 2) + 2).Select(cell => (cell.Value != null ? cell.Value.ToString() : null)).ToList(); if (textValues.Any()) { var customer = new TranslationRow { ID = textValues[0], Key = textValues[1] }; foreach(var culture in cultures) { if (culture.TextColumnIndex > 0 && culture.TextColumnIndex < textValues.Count && !String.IsNullOrWhiteSpace(textValues[culture.TextColumnIndex])) customer.Translations.Add(culture.Culture, textValues[culture.TextColumnIndex]); if (culture.CommentColumnIndex > 0 && culture.CommentColumnIndex < textValues.Count && !String.IsNullOrWhiteSpace(textValues[culture.CommentColumnIndex])) customer.Comments.Add(culture.Culture, textValues[culture.CommentColumnIndex]); } result.Add(customer); } else { break; } } return result; }
public int Import(string filePath) { int count = 0; using (var workbook = new XLWorkbook(filePath, XLEventTracking.Disabled)) { foreach (var worksheet in workbook.Worksheets) { string projectName = getProjectName(worksheet); if (!Solution.Projects.ContainsKey(projectName)) { throw new ProjectUnknownException(projectName); } var project = Solution.Projects[projectName]; var translations = TranslationRow.LoadRows(worksheet); foreach (var t in translations) { ResourceDataGroupBase dataGroup = null; if (!project.ResxGroups[t.ID].AllData.ContainsKey(t.Key)) { dataGroup = project.ResxGroups[t.ID].CreateDataGroup(t.Key); project.ResxGroups[t.ID].AllData.Add(t.Key, dataGroup); } else { dataGroup = project.ResxGroups[t.ID].AllData[t.Key]; } foreach (var te in t.Translations) { if (!dataGroup.ResxData.ContainsKey(te.Key)) { project.ResxGroups[t.ID].SetResourceData(t.Key, te.Value, te.Key); count++; } else if (dataGroup.ResxData[te.Key].Value != te.Value) { dataGroup.ResxData[te.Key].Value = te.Value; count++; } } foreach (var te in t.Comments) { if (!dataGroup.ResxData.ContainsKey(te.Key)) { project.ResxGroups[t.ID].SetResourceDataComment(t.Key, te.Value, te.Key); count++; } else if (dataGroup.ResxData[te.Key].Comment != te.Value) { dataGroup.ResxData[te.Key].Comment = te.Value; count++; } } } } } return(count); }