Skip to content

Utilize these comments in any useful way #15

@konard

Description

@konard

Data/ILinks.cs

Lines 45 to 47 in 5db05cd

// TODO: Move to UniLinksExtensions
//return Trigger(restrictions, (before, after) => handler(before), null, null);
//// Trigger(restrictions, null, restrictions, null); - Должно быть синонимом

Data/ILinks.cs

Lines 59 to 81 in 5db05cd

// TODO: Move to UniLinksExtensions
//// { 0, 0, 0 } => { ifself, 0, 0 }
//// { 0 } => { ifself, 0, 0 } *
//T result = default(T);
//Func<IList<T>, IList<T>, T> substitutedHandler = (before, after) =>
//{
// result = after[Constants.IndexPart];
// return Constants.Continue;
//};
//// Сейчас будет полагать что соответствие шаблону (ограничению) произойдёт только один раз
//Trigger(new[] { Constants.Null }, null,
// new[] { Constants.Itself, Constants.Null, Constants.Null }, substitutedHandler);
//// TODO: Возможна реализация опционального поведения (один ноль-пустота, бесконечность нолей-пустот)
//// 0 => 1
//// 0 => 1
//// 0 => 2
//// 0 => 3
//// ...

Data/ILinks.cs

Lines 96 to 104 in 5db05cd

// TODO: Move to UniLinksExtensions
//// { 1, any, any } => { 1, x, y }
//// { 1 } => { 1, x, y } *
//// { 1, 3, 4 }
//Trigger(new[] { restrictions[Constants.IndexPart] }, null,
// new[] { restrictions[Constants.IndexPart], restrictions[Constants.SourcePart], restrictions[Constants.TargetPart] }, null);
//return restrictions[Constants.IndexPart];

Data/ILinks.cs

Lines 110 to 118 in 5db05cd

// TODO: Move to UniLinksExtensions
//// { 1 } => { 0, 0, 0 }
//// { 1 } => { 0 } *
//Trigger(new[] { link }, null,
// new[] { Constants.Null }, null);
// TODO: Если учесть последние TODO, тогда все функции Create, Update, Delete будут иметь один и тот же интерфейс - IList<TLink> Method(IList<TLink> restrictions);, что может быть удобно для "Create|Update|Delete" транзакционности, !! но нужна ли такая транзакционность? Ведь всё что нужно записывать в транзакцию это изменение с чего в во что. Создание это index, 0, 0 -> index, X, Y (и начало отслеживания связи). Удаление это всегда index, X, Y -> index, 0, 0 (и прекращение отслеживания связи). Обновление - аналогично, но состояние отслеживания не меняется.
// TODO: Хотя пожалуй, выдавать дополнительное значение в виде True/False вряд ли допустимо для Delete. Тогда создание это 0,0,0 -> I,S,T и т.п.
// TODO: Если все методы, Create, Update, Delete будут и принимать и возвращать IList<TLink>, то можно всё заменить одним единым Update, у которого для удаления нужно указать исходный индекс связи и Constans.Null в качестве его нового значения (возможно будет указано 2 ограничения из 3-х)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions