public ViewPrompt(ViewPrompt prompt) { ActionName = prompt.ActionName; ControllerName = prompt.ControllerName; TextName = prompt.TextName; TextKey = prompt.TextKey; LocaleId = prompt.LocaleId; UpdatedAt = prompt.UpdatedAt; UpdatedBy = prompt.UpdatedBy; Text = prompt.Text; }
/// <summary> /// Initializes a new instance of the <see cref="ViewPromptDocument"/> class. /// </summary> /// <param name="prompt">The prompt to copy.</param> public ViewPromptDocument(ViewPrompt prompt) { if (prompt == null) throw new ArgumentNullException("prompt"); ViewPath = prompt.ViewPath; UpdatedAt = DateTime.Now; UpdatedBy = Thread.CurrentPrincipal.Identity.Name; LocaleId = prompt.LocaleId; TextKey = prompt.Key.ToString(); TextName = prompt.TextName; Text = prompt.TranslatedText; }
private TextPrompt CreatePrompt(ViewPrompt prompt) { return new TextPrompt { ActionName = prompt.ActionName, ControllerName = prompt.ControllerName, LocaleId = prompt.LocaleId, TextKey = prompt.TextKey, TextName = prompt.TextName, TranslatedText = prompt.Text }; }
/// <summary> /// Create a new prompt in the specified language /// </summary> /// <param name="culture">Language that the translation is for</param> /// <param name="source">Prompt to use as source</param> /// <param name="translatedText">Translated text</param> public void CreatePrompt(CultureInfo culture, TextPrompt source, string translatedText) { if (source.TextKey == null) throw new InvalidOperationException("TextKey must be specified for all prompts."); var language = GetOrCreateLanguage(culture, culture); var dbPrompt = language.Prompts.Where(p => p.TextKey == source.TextKey).FirstOrDefault(); if (dbPrompt == null) { _logger.Debug("Created prompt " + source.ControllerName + "." + source.ActionName + "." + source.TextName); dbPrompt = new ViewPrompt(source) { Text = translatedText, LocaleId = culture.LCID, }; language.Prompts.Add(dbPrompt); } else { dbPrompt.Text = translatedText; } lock (_modifiedDocuments) { if (!_modifiedDocuments.Contains(language)) _modifiedDocuments.AddLast(language); } }
/// <summary> /// Save/Update a text prompt /// </summary> /// <param name="prompt">Prompt to update</param> public void Save(TextPrompt prompt) { var ourCulture = new CultureInfo(prompt.LocaleId); var language = GetOrCreateLanguage(ourCulture, ourCulture); var dbPrompt = language.Prompts.Where(p => p.TextKey == prompt.TextKey).FirstOrDefault(); if (dbPrompt != null) dbPrompt.Text = prompt.TranslatedText; else { dbPrompt = new ViewPrompt(prompt); language.Prompts.Add(dbPrompt); } // Can't figure out a better way. if (prompt.ActionName == null) prompt.ActionName = "Index"; _logger.Debug("Saving prompt " + prompt.ControllerName + "." + prompt.ActionName + "." + prompt.TextName); _documentSession.Store(language); _documentSession.SaveChanges(); }