Локализация в профиле Automapper с использованием проекций - PullRequest
1 голос
/ 06 июня 2019

Я реализовал Automapper, используя проекции. Я должен использовать IStringLocalizer в своих профилях, но я не могу ввести его. Я пытался использовать распознаватель (IMemberValueResolver), но это не совместимо с проекциями.

Ты хоть представляешь, как я могу это решить?

Большое спасибо.

Луис

Я пытался использовать Resolvers, но они не совместимы с проекциями. Мне нужно перевести слова Mañana (завтра), Hoy (сегодня) и т. Д.

Этот код работает сейчас, используя проекции. Но я бы хотел использовать Локализацию.

public ProgrammeDetailEventProfile()
        {
            CreateMap<ProgrammeCheckupEvent, ProgrammeCheckupEventProgressDTO>()
                .ForMember(dest => dest.Value, opt => opt.MapFrom(x => x.Value.Value))
                .ForMember(dest => dest.Date, opt => opt.MapFrom(x =>
                   GetDate(x.Date, x.Meal)))
                .ForMember(dest => dest.LastUpdate, opt => opt.MapFrom(x => x.LastUpdate.HasValue ? x.LastUpdate.Value.ToString("dd/MM/yyyy HH:mm") : " - "));

            #endregion
        }
        public string GetDate(DateTime date, string meal)
        {
            DateTime today = DateTime.Today;
            string detail = meal != null ? meal.ToLower() : date.ToShortTimeString();
            if (today.AddDays(1) == date.Date)
            {
                return $"Mañana, {detail}";
            }
            else if (today == date.Date)
            {
                return $"Hoy, {detail}";
            }
            else if (today.AddDays(-1) == date.Date)
            {
                return $"Ayer, {detail}";
            }
            return $"{date.ToString("dd/MM/yyyy")}, {detail}";
        }

Я ожидаю что-то вроде этого:

return string.Format(localizer["Today"], detail);
//Will show in English, "Today [...]"
//Will show in Spanish, "Hoy [...]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...