Пример #1
0
        public void Can_log_Language_Updated()
        {
            var @event = new LanguageUpdated();

            _serviceBus.PublishMessage(@event);
            AssertAdminActivityLog(@event, AdminActivityLogCategory.Language);
        }
Пример #2
0
        public void Consume(LanguageUpdated @event)
        {
            var cultures = _repository.Cultures.Single(x => x.Code == @event.Code);

            cultures.Code = @event.Code;
            _repository.SaveChanges();
        }
Пример #3
0
        public void Consume(LanguageUpdated message)
        {
            var culture = _repository.Languages.Single(x => x.Code == message.Code);

            culture.Name = message.Name;

            _repository.SaveChanges();
        }
Пример #4
0
        public void Handle(LanguageUpdated updatedEvent)
        {
            var repository = _container.Resolve <IReportRepository>();
            var records    = repository.LanguageRecords.Where(r => r.Code == updatedEvent.Code);

            if (!records.Any())
            {
                throw new RegoException(string.Format(LanguageRecordNotFoundMessage, updatedEvent.Code));
            }

            records.ForEach(record =>
            {
                record.Code       = updatedEvent.Code;
                record.Name       = updatedEvent.Name;
                record.NativeName = updatedEvent.NativeName;
                record.Updated    = updatedEvent.EventCreated;
                record.UpdatedBy  = updatedEvent.EventCreatedBy;
            });
            repository.SaveChanges();
        }
Пример #5
0
        public void Can_process_Language_updated()
        {
            // Arrange
            var language = BrandTestHelper.CreateCulture("en-TS", "English (Test)");

            language.Name       = "Changed Name";
            language.NativeName = "Changed Native Name";

            // Act
            var @event = new LanguageUpdated(language);

            _serviceBus.PublishMessage(@event);

            // Assert
            Assert.AreEqual(2, _reportRepository.LanguageRecords.Count());
            var record = _reportRepository.LanguageRecords.Last();

            Assert.AreEqual(language.Code, record.Code);
            Assert.AreEqual(language.Name, record.Name);
            Assert.AreEqual(language.NativeName, record.NativeName);
            record.Updated.Should().BeCloseTo(@event.EventCreated);
            Assert.AreEqual(@event.EventCreatedBy, record.UpdatedBy);
        }
Пример #6
0
            private static void SetLanguageResourceDictionary(string path, bool external)
            {
                try
                {
                    int langDictId = ResourceIndexer.Find("Loc-");

                    if (langDictId == -1)
                    {
                        string msg = "Neither custom language nor fallback resource found. " +
                                     "Unwanted side-effects may occur.";
                        Log.Error($"Localization: {msg}");
                        ErrorDetected?.Invoke("Unable to resolve resource", msg);
                    }
                    else
                    {
                        // Replace the current language dictionary with the new one
                        if (external)
                        {
                            if (AvaloniaLocator.Current.GetService <AvaloniaXamlLoader.IRuntimeXamlLoader>() == null)
                            {
                                AvaloniaLocator.CurrentMutable.Bind <AvaloniaXamlLoader.IRuntimeXamlLoader>()
                                .ToConstant(new XamlLoaderShim());
                            }

                            var loader = AvaloniaLocator.Current.GetService <AvaloniaXamlLoader.IRuntimeXamlLoader>();

                            using var stream = new MemoryStream(Encoding.UTF8.GetBytes(File.ReadAllText(path)));
                            try
                            {
                                if (loader.Load(stream, null, null, null, false) is ResourceDictionary dict)
                                {
                                    Application.Current.Resources.MergedDictionaries[langDictId] = dict;
                                }
                                else
                                {
                                    const string msg = "Custom language file is not a resource dictionary";
                                    ErrorDetected?.Invoke("XAML error", msg);
                                    Log.Error($"Localization: {msg}");
                                }
                            }
                            catch (XmlException ex)
                            {
                                string msg = $"An external resource dictionary contains syntax errors.\n\nPlease check line {ex.LineNumber}, column {ex.LinePosition} in the affected XAML file.\n\n{path}";
                                ErrorDetected?.Invoke("XAML syntax error", msg);
                                Log.Error($"Localization: XAML syntax error. Line {ex.LineNumber}, column {ex.LinePosition}.");
                            }
                        }
                        else
                        {
                            Application.Current.Resources.MergedDictionaries[langDictId] = new ResourceInclude {
                                Source = new Uri(path)
                            };
                        }
                    }
                }
                catch (IOException e)
                {
                    ErrorDetected?.Invoke("IO-Exception", e.Message);
                    Log.Error($"Localization: IOError while loading locales. Details: {e.Message}");
                }

                LanguageUpdated?.Invoke();
            }
Пример #7
0
 public void Consume(LanguageUpdated message)
 {
     _eventHandlers.Handle(message);
 }
Пример #8
0
 public void Handle(LanguageUpdated @event)
 {
     AddActivityLog(AdminActivityLogCategory.Language, @event);
 }