В C# 7.0 есть записи. Нет, не учитывается, если вы имеете ввиду «склейку» Tuple. Вообще, я выше говорил, что не стоит использовать такие громоздкие записи, где будет Item7 например, это понижает читаемость, хотя дает типизацию.
Да, это просто Fluent! И он прекрасен!!!
Я не совсем понимаю, что Вы хотели увидеть… Разговор ведется в рамках императивного языка программирования C#, я использую лишь другую запись, и не собираюсь делать из C# F#…
Extend — это функция создающая Tuple из входящего Tuple или одного типа, добавляя к нему еще один элемент. Например, есть Tuple<int, double>, тогда Extend(Tuple<int, double>, string) вернет Tuple<int, double, string>. В данном случае, моделью для вьюшки будет являться Tuple<Cart, Product>.
Могу в течении дня выложить на гит-хаб свою библиотеку и примеры использования. Выглядит код как-то так в итоге: Action в MVC-контроллере добавления в корзину:
public IActionResult Add(string a, string b, string c, string d, int count = 1, int mod=0)
=> _dal.GetUrl(a, b, c, d).Convert(_dal.GetProduct)
.IfNotNull(x =>
_dal.AddProductToCart(_dal.GetCartBySession(HttpContext.Session.Id), x, count, mod)
.Extend(x).Convert(PartialView), () => (IActionResult) NotFound());
Понажимайте «вверх», кого заинтересует раскрытие данной темы.
У меня уже два рабочих проекта в таком стиле сделано. Но есть два минуса такого подхода, могу позже объяснить что к чему…
Осталось сделать рабочий компилируемый пример и описать плюсы и минусы…
Кому интересна данная тема, милости просим!
Я не совсем понимаю, что Вы хотели увидеть… Разговор ведется в рамках императивного языка программирования C#, я использую лишь другую запись, и не собираюсь делать из C# F#…
Action в MVC-контроллере добавления в корзину:
Понажимайте «вверх», кого заинтересует раскрытие данной темы.
У меня уже два рабочих проекта в таком стиле сделано. Но есть два минуса такого подхода, могу позже объяснить что к чему…