-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Lines 45 to 47 in 5db05cd
| // TODO: Move to UniLinksExtensions | |
| //return Trigger(restrictions, (before, after) => handler(before), null, null); | |
| //// Trigger(restrictions, null, restrictions, null); - Должно быть синонимом |
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 | |
| //// ... |
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]; |
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-х) |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels