private ShopUnitController(IShopUnitModel unitModel, IShopUnitView unitView, IDisposer disposer) { unitModel.CanBeBought .Subscribe(purchasable => unitView.Purchasable = purchasable) .AddToDisposer(disposer); unitView.BuyButton.OnClickAsObservable() .Where(_ => unitModel.CanBeBought.Value) .Subscribe(_ => unitModel.Buy()) .AddToDisposer(disposer); }
public IPreparationUnitModel Create(IShopUnitModel shopUnit) { var model = _preparationUnitModelFactory.Create(shopUnit.Id.Value); model.MoveTo(false, _benchModel.GetFirstFreePosition()); var view = _preparationUnitViewFactory.Instantiate(); _preparationUnitControllerFactory.Create(model, view); return(model); }