Exemple #1
0
        protected virtual async Task <ApplicationLocalizationConfigurationDto> GetLocalizationConfigAsync()
        {
            var localizationConfig = new ApplicationLocalizationConfigurationDto();

            localizationConfig.Languages.AddRange(await _languageProvider.GetLanguagesAsync());

            foreach (var resource in _localizationOptions.Resources.Values)
            {
                var dictionary = new Dictionary <string, string>();

                var localizer = _serviceProvider.GetRequiredService(
                    typeof(IStringLocalizer <>).MakeGenericType(resource.ResourceType)
                    ) as IStringLocalizer;

                foreach (var localizedString in localizer.GetAllStrings())
                {
                    dictionary[localizedString.Name] = localizedString.Value;
                }

                localizationConfig.Values[resource.ResourceName] = dictionary;
            }

            localizationConfig.CurrentCulture = GetCurrentCultureInfo();

            if (_localizationOptions.DefaultResourceType != null)
            {
                localizationConfig.DefaultResourceName = LocalizationResourceNameAttribute.GetName(
                    _localizationOptions.DefaultResourceType
                    );
            }

            return(localizationConfig);
        }
        protected virtual LocalizableStringDto CreateDisplayNameDto(ExtensionPropertyConfiguration propertyConfig)
        {
            if (propertyConfig.DisplayName == null)
            {
                return(null);
            }

            if (propertyConfig.DisplayName is LocalizableString localizableStringInstance)
            {
                return(new LocalizableStringDto(
                           localizableStringInstance.Name,
                           localizableStringInstance.ResourceType != null
                        ? LocalizationResourceNameAttribute.GetName(localizableStringInstance.ResourceType)
                        : null
                           ));
            }

            if (propertyConfig.DisplayName is FixedLocalizableString fixedLocalizableString)
            {
                // "_" means don't use the default resource, but directly use the name.
                return(new LocalizableStringDto(fixedLocalizableString.Value, "_"));
            }

            return(null);
        }
        public static string GetLocalizationResourceNameOrNull(
            this ExtensionPropertyConfiguration property)
        {
            var resourceType = property.GetLocalizationResourceTypeOrNull();

            if (resourceType == null)
            {
                return(null);
            }

            return(LocalizationResourceNameAttribute.GetName(resourceType));
        }
        protected virtual ApplicationLocalizationConfigurationDto GetLocalizationConfig()
        {
            var localizationConfig = new ApplicationLocalizationConfigurationDto();

            foreach (var resource in _localizationOptions.Resources.Values)
            {
                var dictionary = new Dictionary <string, string>();

                var localizer = _serviceProvider.GetRequiredService(typeof(IStringLocalizer <>).MakeGenericType(resource.ResourceType)) as IStringLocalizer;

                foreach (var localizedString in localizer.GetAllStrings())
                {
                    dictionary[localizedString.Name] = localizedString.Value;
                }

                var resourceName = LocalizationResourceNameAttribute.GetName(resource.ResourceType);
                localizationConfig.Values[resourceName] = dictionary;
            }

            return(localizationConfig);
        }
Exemple #5
0
        protected virtual async Task SendFriendValidationNotifierAsync(UserChatFriend userChatFriend)
        {
            // 发送好友验证通知
            var userIdentifer = new UserIdentifier(userChatFriend.FrientId, userChatFriend.RemarkName);

            var friendValidationNotifictionData = new NotificationData();

            friendValidationNotifictionData
            .WriteLocalizedData(
                new LocalizableStringInfo(
                    LocalizationResourceNameAttribute.GetName(typeof(MessageServiceResource)),
                    "Notifications:FriendValidation"),
                new LocalizableStringInfo(
                    LocalizationResourceNameAttribute.GetName(typeof(MessageServiceResource)),
                    "Notifications:RequestAddNewFriend",
                    new Dictionary <object, object> {
                { "name", _currentUser.UserName }
            }),
                DateTime.Now,
                _currentUser.UserName,
                new LocalizableStringInfo(
                    LocalizationResourceNameAttribute.GetName(typeof(MessageServiceResource)),
                    "Notifications:RequestAddNewFriendDetail",
                    new Dictionary <object, object> {
                { "description", userChatFriend.Description }
            }));
            friendValidationNotifictionData.TrySetData("userId", userChatFriend.UserId);
            friendValidationNotifictionData.TrySetData("frientId", userChatFriend.FrientId);

            await _notificationSender
            .SendNofiterAsync(
                MessageServiceNotificationNames.IM.FriendValidation,
                friendValidationNotifictionData,
                userIdentifer,
                userChatFriend.TenantId);
        }
Exemple #6
0
        public async Task HandleEventAsync(EntityCreatedEventData <UserEto> eventData)
        {
            var userIdentifer = new UserIdentifier(eventData.Entity.Id, eventData.Entity.UserName);
            // 订阅用户欢迎消息
            await _notificationSubscriptionManager
            .SubscribeAsync(
                eventData.Entity.TenantId,
                userIdentifer,
                UserNotificationNames.WelcomeToApplication);

            var userWelcomeNotifictionData = new NotificationData();

            //userWelcomeNotifictionData.WriteStandardData(
            //    L("WelcomeToApplicationFormUser", eventData.Entity.Name ?? eventData.Entity.UserName),
            //    L("WelcomeToApplicationFormUser", eventData.Entity.Name ?? eventData.Entity.UserName),
            //    DateTime.Now, eventData.Entity.UserName);

            userWelcomeNotifictionData
            .WriteLocalizedData(
                new LocalizableStringInfo(
                    LocalizationResourceNameAttribute.GetName(typeof(MessageServiceResource)),
                    "WelcomeToApplicationFormUser"),
                new LocalizableStringInfo(
                    LocalizationResourceNameAttribute.GetName(typeof(MessageServiceResource)),
                    "WelcomeToApplicationFormUser"),
                DateTime.Now, eventData.Entity.UserName);

            await _notificationSender
            .SendNofiterAsync(
                UserNotificationNames.WelcomeToApplication,
                userWelcomeNotifictionData,
                userIdentifer,
                eventData.Entity.TenantId,
                NotificationSeverity.Info
                );
        }
 private static LocalizableStringInfo GetTwoFactorBehaviourLocalizableStringInfo(string key)
 {
     return(new LocalizableStringInfo(LocalizationResourceNameAttribute.GetName(typeof(IdentityResource)), key));
 }