133 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UniversalEditor.ObjectModels.Contact
{
public class ContactObjectModel : ObjectModel
{
public class ContactObjectModelCollection
: System.Collections.ObjectModel.Collection<ContactObjectModel>
{
}
private static ObjectModelReference _omr = null;
protected override ObjectModelReference MakeReferenceInternal()
{
if (_omr == null)
{
_omr = base.MakeReferenceInternal();
_omr.Title = "Contact";
_omr.Path = new string[] { "General", "Contact" };
}
return _omr;
}
private ContactNotes mvarNotes = new ContactNotes();
public ContactNotes Notes { get { return mvarNotes; } }
private ContactGender mvarGender = ContactGender.Unspecified;
public ContactGender Gender { get { return mvarGender; } set { mvarGender = value; } }
private DateTime mvarCreationDate = DateTime.Now;
public DateTime CreationDate { get { return mvarCreationDate; } set { mvarCreationDate = value; } }
private ContactIdentifier.ContactIdentifierCollection mvarIdentifiers = new ContactIdentifier.ContactIdentifierCollection();
public ContactIdentifier.ContactIdentifierCollection Identifiers { get { return mvarIdentifiers; } }
private ContactEmailAddress.ContactEmailAddressCollection mvarEmailAddresses = new ContactEmailAddress.ContactEmailAddressCollection();
public ContactEmailAddress.ContactEmailAddressCollection EmailAddresses { get { return mvarEmailAddresses; } }
private ContactName.ContactNameCollection mvarNames = new ContactName.ContactNameCollection();
public ContactName.ContactNameCollection Names { get { return mvarNames; } }
private ContactPhysicalAddress.ContactPhysicalAddressCollection mvarPhysicalAddresses = new ContactPhysicalAddress.ContactPhysicalAddressCollection();
public ContactPhysicalAddress.ContactPhysicalAddressCollection PhysicalAddresses { get { return mvarPhysicalAddresses; } }
private ContactPhoneNumber.ContactPhoneNumberCollection mvarPhoneNumbers = new ContactPhoneNumber.ContactPhoneNumberCollection();
public ContactPhoneNumber.ContactPhoneNumberCollection PhoneNumbers { get { return mvarPhoneNumbers; } }
private ContactRelationship.ContactRelationshipCollection mvarRelationships = new ContactRelationship.ContactRelationshipCollection();
public ContactRelationship.ContactRelationshipCollection Relationships { get { return mvarRelationships; } }
private ContactPhoto.ContactPhotoCollection mvarPhotos = new ContactPhoto.ContactPhotoCollection();
public ContactPhoto.ContactPhotoCollection Photos { get { return mvarPhotos; } }
private ContactDate.ContactDateCollection mvarDates = new ContactDate.ContactDateCollection();
public ContactDate.ContactDateCollection Dates { get { return mvarDates; } }
private ContactPosition.ContactPositionCollection mvarPositions = new ContactPosition.ContactPositionCollection();
public ContactPosition.ContactPositionCollection Positions { get { return mvarPositions; } }
private ContactUrl.ContactUrlCollection mvarUrls = new ContactUrl.ContactUrlCollection();
public ContactUrl.ContactUrlCollection Urls { get { return mvarUrls; } }
public override void Clear()
{
mvarNotes = new ContactNotes();
mvarGender = ContactGender.Unspecified;
mvarCreationDate = DateTime.Now;
mvarIdentifiers.Clear();
mvarEmailAddresses.Clear();
mvarNames.Clear();
mvarPhysicalAddresses.Clear();
mvarPhoneNumbers.Clear();
mvarRelationships.Clear();
mvarPhotos.Clear();
mvarDates.Clear();
mvarPositions.Clear();
mvarUrls.Clear();
}
public override void CopyTo(ObjectModel where)
{
ContactObjectModel clone = (where as ContactObjectModel);
clone.Notes.Content = (mvarNotes.Content.Clone() as string);
clone.Notes.ModificationDate = mvarNotes.ModificationDate;
clone.Gender = mvarGender;
clone.CreationDate = mvarCreationDate;
foreach (ContactIdentifier item in mvarIdentifiers)
{
clone.Identifiers.Add(item.Clone() as ContactIdentifier);
}
foreach (ContactEmailAddress item in mvarEmailAddresses)
{
clone.EmailAddresses.Add(item.Clone() as ContactEmailAddress);
}
foreach (ContactName item in mvarNames)
{
clone.Names.Add(item.Clone() as ContactName);
}
foreach (ContactPhysicalAddress item in mvarPhysicalAddresses)
{
clone.PhysicalAddresses.Add(item.Clone() as ContactPhysicalAddress);
}
foreach (ContactPhoneNumber item in mvarPhoneNumbers)
{
clone.PhoneNumbers.Add(item.Clone() as ContactPhoneNumber);
}
foreach (ContactRelationship item in mvarRelationships)
{
clone.Relationships.Add(item.Clone() as ContactRelationship);
}
foreach (ContactPhoto item in mvarPhotos)
{
clone.Photos.Add(item.Clone() as ContactPhoto);
}
foreach (ContactDate item in mvarDates)
{
clone.Dates.Add(item.Clone() as ContactDate);
}
foreach (ContactPosition item in mvarPositions)
{
clone.Positions.Add(item.Clone() as ContactPosition);
}
foreach (ContactUrl item in mvarUrls)
{
clone.Urls.Add(item.Clone() as ContactUrl);
}
}
}
}