public void DeleteContact(IContactBus contact)
		{
		    // Address
			if (contact.ContactData != null) 
			{
				_repo.Delete<Address>(contact.AddressData.AddressId);
			}
			
			// Contact
		    if (contact.ContactData != null) _repo.Delete<Contact>(contact.ContactData.ContactId);
		}
	    public void SaveContact(IContactBus contact)
		{
			// Contact data
			switch (contact.ContactData.ObjectStatus) 
			{
				case DataObjectStatus.Modified:
					_repo.Update(contact.ContactData);
					break;
				case DataObjectStatus.Added:
					_repo.Insert(contact.ContactData);
					break;
			}
			
			// Address
			if (contact.AddressData != null) 
			{
				switch (contact.AddressData.ObjectStatus) 
				{
					case DataObjectStatus.Modified:
						_repo.Update(contact.AddressData);
						break;
					case DataObjectStatus.Added:
						contact.AddressData.EntityId = contact.ContactData.ContactId;
						_repo.Insert(contact.AddressData);
						break;
				}
			}
			
		}
		public IContactBus LoadDetails(IContactBus contact)
		{
			if (contact.ContactData != null) 
			{
				var dataService = ServiceLocator.Current.GetInstance<IDataService>();
				
				if (dataService != null) 
				{
					var repo = dataService.Repo;
					var address = repo.Query<Address>(String.Format("EntityId={0}",contact.ContactData.ContactId),"",0,"*")
						.FirstOrDefault();

					if (address != null)
					{
						contact.AddressData = address;
					}
					else
					{
						contact.AddressData = new Address
						                            {
														ObjectStatus = DataObjectStatus.Added
													};
					}
				
					var account = repo.Query<Account>(String.Format("AccountId={0}",contact.ContactData.AccountId),"",0,"*")
					                  .FirstOrDefault();
					
					contact.AccountBusData = new AccountBus();
					
					if (account != null) 
					{
						contact.AccountBusData.AccountData = account;
						contact.AccountBusData = LoadDetails(contact.AccountBusData);
					}
				}
			}
			
			return contact;
		}