|
using System;
using System.Collections.Generic;
using System.Text;
using MVCSharp.Core;
using MVCSharp.Core.Tasks;
using MVCSharp.Examples.Basics.Model;
using MVCSharp.Core.Views;
namespace MVCSharp.Examples.Basics.ApplicationLogic
{
public class OrdersController : ControllerBase<MainTask, IOrdersView>
{
public override MainTask Task
{
get { return base.Task; }
set
{
base.Task = value;
Task.CurrentCustomerChanged += CurrentCustomerChanged;
}
}
public override IOrdersView View
{
get {return base.View; }
set
{
base.View = value;
CurrentCustomerChanged(Task, EventArgs.Empty);
}
}
private void CurrentCustomerChanged(object sender, EventArgs e)
{
View.SetOrdersList(Task.CurrentCustomer.Orders);
UpdateView();
}
public void AcceptOrder()
{
View.CurrentOrder.Accept();
UpdateView();
}
public void ShipOrder()
{
View.CurrentOrder.Ship();
UpdateView();
}
public void CancelOrder()
{
View.CurrentOrder.Cancel();
UpdateView();
}
public void CurrentOrderChanged()
{
UpdateView();
}
private void UpdateView()
{
if (View.CurrentOrder == null) return;
OrderState os = View.CurrentOrder.State;
View.SetOperationsEnabling(
os == OrderState.Open, os == OrderState.Pending,
(os == OrderState.Open) || (os == OrderState.Pending));
}
public void ShowCustomers()
{
Task.Navigator.Navigate(MainTask.Customers);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Oleg Zhukov, born and living in Russia is Lead Engineer and Project Manager in a company which provides business software solutions. He has graduated from Moscow Institute of Physics and Technology (MIPT) (department of system programming) and has got a M.S. degree in applied physics and mathematics. His research and development work concerns architectural patterns, domain-driven development and systems analysis. Being the adherent of agile methods he applies them extensively in the projects managed by him.