PropertyManager

static class · пространство имён z3n7.Utilities · исходник Accounts/PropertyManager.cs

public static class PropertyManager

Копирует простые свойства объектов в строки базы и обратно (через рефлексию).

Методы

GetTypeProperties

public static List<string> GetTypeProperties(Type type, bool requireSetter = false)

исходник

Имена публичных читаемых свойств простых типов: примитивы, string, decimal, DateTime, перечисления.

Параметр Описание
type Тип, который нужно разобрать.
requireSetter Только свойства, у которых есть и публичный сеттер.
public static List<string> GetTypeProperties(object obj)

исходник

То же, что GetTypeProperties(obj.GetType()).

GetValuesByProperty

public static Dictionary<string, string> GetValuesByProperty(this IZennoPosterProjectModel project, object obj, List<string> propertyList = null, string tableToUpd = null)

Метод расширения для IZennoPosterProjectModel. исходник

Читает значения свойств текстом, одинарные кавычки удваиваются. Свойства, которые не удалось прочитать, пропускаются.

Параметр Описание
obj Объект-источник.
propertyList Какие свойства читать; по умолчанию GetTypeProperties.
tableToUpd Если задано, значения также записываются в строку текущего аккаунта этой таблицы (DicToDb).

Возвращает: Свойство → значение.

SetValuesFromDb

public static void SetValuesFromDb(this IZennoPosterProjectModel project, object obj, string table = "profile", List<string> propertyList = null, string key = "id", object id = null, string where = "")

Метод расширения для IZennoPosterProjectModel. исходник

Задаёт записываемые свойства объекта из строки базы, приводя текст к типу свойства. Пустые значения и неудачные приведения пропускаются; остальные ошибки пишутся в лог как предупреждения.

Параметр Описание
obj Целевой объект.
table Таблица.
propertyList Какие свойства задавать; по умолчанию GetTypeProperties.
key Колонка, которая сверяется с id.
id Строка; по умолчанию текущий аккаунт (acc0).
where Сырое SQL-условие вместо key/id.