Esempio n. 1
0
        protected virtual Option <IMenuModel> CreateItem(object item, Option <IMenuModel> parent)
        {
            Ensure.That(item, nameof(item)).IsNotNull();

            var label = Optional(item)
                        .Bind(c => Renderers.Find(r => r.CanRender(c)).Map(r => r.Render(c)))
                        .HeadOrNone();

            return(label.Map <IMenuModel>(v => new MenuModel(v.Key, v.DisplayName, item, parent)));
        }