/// <summary> /// Configures the registered language /// </summary> /// <param name="configuration">The language configuration</param> public void Configure ( RegisteredLanguageConfiguration configuration ) { Validate.IsNotNull(configuration); if (String.IsNullOrWhiteSpace(configuration.Name)) { throw new ArgumentException ( "The language name is required." ); } if (String.IsNullOrWhiteSpace(configuration.Iso)) { throw new ArgumentException ( "The language ISO is required." ); } this.Name = configuration.Name; this.Iso = configuration.Iso; this.Default = configuration.Default; this.DateModified = DateTime.UtcNow; this.Version++; }
/// <summary> /// Constructs the registered language with basic details /// </summary> /// <param name="configuration">The language configuration</param> public RegisteredLanguage ( RegisteredLanguageConfiguration configuration ) { this.Id = Guid.NewGuid(); this.DateCreated = DateTime.UtcNow; Configure(configuration); }
/// <summary> /// Configures a registered language /// </summary> /// <param name="id">The language ID</param> /// <param name="configuration">The language configuration</param> public void ConfigureLanguage ( Guid id, RegisteredLanguageConfiguration configuration ) { var language = _languageRepository.GetLanguage(id); language.Configure(configuration); _languageRepository.UpdateLanguage(language); _unitOfWork.SaveChanges(); RegisteredPhraseTranslatorFactory.ClearCache(); }
/// <summary> /// Creates a registered language /// </summary> /// <param name="configuration">The language configuration</param> /// <returns>The language created</returns> public RegisteredLanguage CreateLanguage ( RegisteredLanguageConfiguration configuration ) { EnsureLanguageAvailable(configuration); var language = new RegisteredLanguage ( configuration ); _languageRepository.AddLanguage(language); _unitOfWork.SaveChanges(); RegisteredPhraseTranslatorFactory.ClearCache(); return(language); }
/// <summary> /// Ensures a language is available to be registered /// </summary> /// <param name="configuration">The language configuration</param> private void EnsureLanguageAvailable ( RegisteredLanguageConfiguration configuration ) { Validate.IsNotNull(configuration); var iso = configuration.Iso; var language = _languageRepository.FindLanguage ( iso ); if (language != null) { throw new InvalidOperationException ( $"The language ISO '{iso}' is not available." ); } }