Пример #1
0
        /// <summary>
        /// Возвращает языковой пакет, активный для пользователя, ассоциированного с контекстом <paramref name="context"/>.
        /// </summary>
        /// <returns>Возвращает объект типа <see cref="Language"/> или null в случае ошибки.</returns>
        /// <exception cref="ArgumentNullException">Возникает, если <paramref name="context"/> равен null.</exception>
        Language GetUserLanguage(IUserContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            try
            {
                using (var db = new DB.DataContext())
                {
                    var id    = AppCore.AppConfig.IdSystemLanguage;
                    var query = from Language in db.Language
                                where Language.IsDefault != 0 || Language.IdLanguage == id
                                orderby(Language.IdLanguage == id? 1 : 0) descending
                                select Language;

                    var data = query.FirstOrDefault();

                    return(data != null?CreateFromDB(data) : CreateDefaultLanguage());
                }
            }
            catch (Exception ex)
            {
                this.RegisterEvent(EventType.Error, "Ошибка при получении активного системного языкового пакета", null, null, ex);
                return(null);
            }
        }
Пример #2
0
 /// <summary>
 /// Возвращает список языковых пакетов, зарегистрированных в системе.
 /// </summary>
 /// <returns>Возвращает список языковых пакетов или null в случае ошибки.</returns>
 public List <Language> GetLanguages()
 {
     try
     {
         using (var db = new DB.DataContext())
         {
             return(db.Language.ToList().Select(x => CreateFromDB(x)).ToList());
         }
     }
     catch (Exception ex)
     {
         this.RegisterEvent(EventType.Error, "Ошибка при получении списка языковых пакетов", null, null, ex);
         return(null);
     }
 }