Software Expressions

.Net / Software / Visual Studio / TFS / other ramblings
 

Goto

Categories

 

Archive for May, 2007

   1:  Public Class Project
   2:      Inherits BusinessBase(Of Project)
   3:   
   4:      Public ReadOnly Property LineItems() As LineItemsCollection
   5:          Get
   6:              CanReadProperty(True)
   7:              If _lineItems Is Nothing Then
   8:                  If Me.IsNew Then
   9:                      _lineItems = LineItemList.NewLineItemList(Me)
  10:                  Else
  11:                      _lineItems = LineItemList.GetLineItems(Me)
  12:                  End If
  13:                  AddHandler _lineItems.ListChanged, _
  14:                  AddressOf LineItemChangedHandler
  15:              End If
  16:              Return _lineItems
  17:          End Get
  18:      End Property
  19:   
  20:      Public Sub LineItemChangedHandler(_
  21:          ByVal sender As Object, _
  22:          ByVal e As System.ComponentModel.ListChangedEventArgs)
  23:          If (e.ListChangedType = ListChangedType.ItemAdded) Then
  24:              _lineItems(e.NewIndex).Project = Me
  25:          End If
  26:      End Sub
  27:   
  28:   
  29:  End Class
  30:   
  31:  Public Class LineItem
  32:      Inherits BusinessBase(Of LineItem)
  33:   
  34:      <NotUndoable()> <NonSerialized()> Private _project As Project
  35:   
  36:      Public Property Project() As Project
  37:          Get
  38:              If _project Is Nothing Then
  39:                  _project = Project.GetProject(_projectId)
  40:              End If
  41:              Return _project
  42:          End Get
  43:          Friend Set(ByVal value As Project)
  44:              If Not value.ID = _projectId Then
  45:                 _project = proj
  46:              ProjectId = proj.ID
  47:              End If
  48:          End Set
  49:      End Property
  50:   
  51:      Public Property ProjectId() As Guid
  52:          Get
  53:              CanReadProperty(True)
  54:              Return _projectId
  55:          End Get
  56:          Private Set(ByVal value As Guid)
  57:              If _projectId <> value Then
  58:                  _projectId = value
  59:                  PropertyHasChanged()
  60:              End If
  61:          End Set
  62:      End Property
  63:   
  64:  End Class