//------------------------------------------------------------------------------
//
// This code was generated from a template.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
namespace WNS.Entities
{
public partial class Devision
{
#region Primitive Properties
public virtual int Id
{
get;
set;
}
public virtual string Name
{
get;
set;
}
public virtual int OrganizationId
{
get { return _organizationId; }
set
{
if (_organizationId != value)
{
if (Organization != null && Organization.Id != value)
{
Organization = null;
}
_organizationId = value;
}
}
}
private int _organizationId;
#endregion
#region Navigation Properties
public virtual Organization Organization
{
get { return _organization; }
set
{
if (!ReferenceEquals(_organization, value))
{
var previousValue = _organization;
_organization = value;
FixupOrganization(previousValue);
}
}
}
private Organization _organization;
public virtual ICollection Contact
{
get
{
if (_contact == null)
{
var newCollection = new FixupCollection();
newCollection.CollectionChanged += FixupContact;
_contact = newCollection;
}
return _contact;
}
set
{
if (!ReferenceEquals(_contact, value))
{
var previousValue = _contact as FixupCollection;
if (previousValue != null)
{
previousValue.CollectionChanged -= FixupContact;
}
_contact = value;
var newValue = value as FixupCollection;
if (newValue != null)
{
newValue.CollectionChanged += FixupContact;
}
}
}
}
private ICollection _contact;
public virtual ICollection ContactInformation
{
get
{
if (_contactInformation == null)
{
var newCollection = new FixupCollection();
newCollection.CollectionChanged += FixupContactInformation;
_contactInformation = newCollection;
}
return _contactInformation;
}
set
{
if (!ReferenceEquals(_contactInformation, value))
{
var previousValue = _contactInformation as FixupCollection;
if (previousValue != null)
{
previousValue.CollectionChanged -= FixupContactInformation;
}
_contactInformation = value;
var newValue = value as FixupCollection;
if (newValue != null)
{
newValue.CollectionChanged += FixupContactInformation;
}
}
}
}
private ICollection _contactInformation;
#endregion
#region Association Fixup
private void FixupOrganization(Organization previousValue)
{
if (previousValue != null && previousValue.Devision.Contains(this))
{
previousValue.Devision.Remove(this);
}
if (Organization != null)
{
if (!Organization.Devision.Contains(this))
{
Organization.Devision.Add(this);
}
if (OrganizationId != Organization.Id)
{
OrganizationId = Organization.Id;
}
}
}
private void FixupContact(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (Contact item in e.NewItems)
{
item.Devision = this;
}
}
if (e.OldItems != null)
{
foreach (Contact item in e.OldItems)
{
if (ReferenceEquals(item.Devision, this))
{
item.Devision = null;
}
}
}
}
private void FixupContactInformation(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (ContactInformation item in e.NewItems)
{
item.Devision = this;
}
}
if (e.OldItems != null)
{
foreach (ContactInformation item in e.OldItems)
{
if (ReferenceEquals(item.Devision, this))
{
item.Devision = null;
}
}
}
}
#endregion
}
}