//------------------------------------------------------------------------------ // // 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 } }