//------------------------------------------------------------------------------
//
// 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 Contact
{
#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;
public virtual int DevisionId
{
get { return _devisionId; }
set
{
if (_devisionId != value)
{
if (Devision != null && Devision.Id != value)
{
Devision = null;
}
_devisionId = value;
}
}
}
private int _devisionId;
#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 Devision Devision
{
get { return _devision; }
set
{
if (!ReferenceEquals(_devision, value))
{
var previousValue = _devision;
_devision = value;
FixupDevision(previousValue);
}
}
}
private Devision _devision;
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.Contact.Contains(this))
{
previousValue.Contact.Remove(this);
}
if (Organization != null)
{
if (!Organization.Contact.Contains(this))
{
Organization.Contact.Add(this);
}
if (OrganizationId != Organization.Id)
{
OrganizationId = Organization.Id;
}
}
}
private void FixupDevision(Devision previousValue)
{
if (previousValue != null && previousValue.Contact.Contains(this))
{
previousValue.Contact.Remove(this);
}
if (Devision != null)
{
if (!Devision.Contact.Contains(this))
{
Devision.Contact.Add(this);
}
if (DevisionId != Devision.Id)
{
DevisionId = Devision.Id;
}
}
}
private void FixupContactInformation(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (ContactInformation item in e.NewItems)
{
item.Contact = this;
}
}
if (e.OldItems != null)
{
foreach (ContactInformation item in e.OldItems)
{
if (ReferenceEquals(item.Contact, this))
{
item.Contact = null;
}
}
}
}
#endregion
}
}