Author: marisic.net
(2009/02/16 04:40) Almost 3 years ago
57
<ItemGroup>
58
<Compile Include="BusinessConversation.cs" />
59
<Compile Include="ConversationMode.cs" />
60
<Compile Include="View\IView.cs" />
<Compile Include="View\Presenter.cs" />
61
<Compile Include="View\IPresenter.cs" />
62
<Compile Include="PresenterScanner.cs" />
63
1
namespace StructuredWeb.Common.View
2
{
3
public class Presenter<T> : IPresenter<T>
public abstract class Presenter<TView> where TView : IView
4
5
public TView View { get; set; }
6
7
public virtual void OnViewInitialized()
8
#region IPresenter<T> Members
9
}
10
public T View { get; set; }
11
public virtual void OnViewLoaded()
12
13
14
15
16
17
#endregion
18
19
namespace StructuredWeb.Modules.EmployeeManagement.View
public class EmployeePresenter : Presenter<IEmployeeView>
private readonly IEmployeeController _controller;
public EmployeePresenter(IEmployeeController controller)
_controller = controller;
[BusinessConversation]
20
public override void OnViewInitialized()
21
22
View.Employees = _controller.GetEmployees();
23
24
25
public override void OnViewLoaded()
26
27
View.EmployeesListDatasource = View.Employees;
28
29
30
31
#region Using Statements
using System.Collections.Generic;
using StructuredWeb.Common.View;
using StructuredWeb.Domain.Business;
public interface IEmployeeView
public interface IEmployeeView: IView
IList<Employee> Employees { get; set; }
IList<Employee> EmployeesListDatasource { set; }
namespace StructuredWeb
public abstract class ViewBasePage<TPresenter, TView> : Page where TPresenter : Presenter<TView>
public abstract class ViewBasePage<TPresenter, TView> : Page where TPresenter : Presenter<TView> where TView : IView
protected TPresenter _presenter;
{{public class Presenter<T> : IPresenter<T>public abstract class Presenter<TView> where TView : IView{public TView View { get; set; }public virtual void OnViewInitialized(){{#region IPresenter<T> Members}public T View { get; set; }public virtual void OnViewLoaded(){public virtual void OnViewInitialized(){}public virtual void OnViewLoaded(){}#endregion{{public class EmployeePresenter : Presenter<IEmployeeView>{private readonly IEmployeeController _controller;public EmployeePresenter(IEmployeeController controller){{private readonly IEmployeeController _controller;_controller = controller;}{public EmployeePresenter(IEmployeeController controller)public override void OnViewLoaded(){{_controller = controller;View.EmployeesListDatasource = View.Employees;}[BusinessConversation]public override void OnViewInitialized(){View.Employees = _controller.GetEmployees();}public override void OnViewLoaded(){View.EmployeesListDatasource = View.Employees;}{{public interface IEmployeeView: IView{{IList<Employee> Employees { get; set; }IList<Employee> Employees { get; set; }IList<Employee> EmployeesListDatasource { set; }IList<Employee> EmployeesListDatasource { set; }{{public abstract class ViewBasePage<TPresenter, TView> : Page where TPresenter : Presenter<TView> where TView : IView{{