/// <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);
        }
示例#3
0
        /// <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();
        }
示例#4
0
        /// <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);
        }
示例#5
0
        /// <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."
                      );
            }
        }