public void CreateOneAccountWithMultipleContacts(int startNumber, int endNumber) { Account account = new Account(); account.Name = "TestAccountWithMultipleContacts" + startNumber; Guid accountId = this.Context.Proxy.Create(account); CrmSdk.Account retrievedAccount = (CrmSdk.Account) this.Context.Proxy.Retrieve("account", accountId, new Microsoft.Xrm.Sdk.Query.ColumnSet(true)); List <CrmSdk.Contact> listContacts = new List <CrmSdk.Contact>(); Console.WriteLine("\n############# Creating " + (endNumber + 1 - startNumber) + " Contacts each having Account as TestAccountWithMultipleContacts" + startNumber); for (int i = startNumber; i <= endNumber; i++) { Contact contact = new Contact(); contact.LastName = "TestMultiContactLN" + i; contact.FirstName = "TestMultiContactFN" + i; Guid contactId = this.Context.Proxy.Create(contact); CrmSdk.Contact retrievedContact = (CrmSdk.Contact) this.Context.Proxy.Retrieve(CrmSdk.Contact.EntityLogicalName, contactId, new Microsoft.Xrm.Sdk.Query.ColumnSet(true)); listContacts.Add(retrievedContact); Console.WriteLine("Created Contact: TestMultiContactLN" + i + " having guid: " + contactId); } retrievedAccount.contact_customer_accounts = listContacts; this.Context.Proxy.Update(retrievedAccount); Console.WriteLine("Added Account with " + (endNumber + 1 - startNumber) + " Contacts"); }
/// <summary> /// Delete Account records between startNumber and endNumber /// </summary> /// <param name="startNumber"></param> /// <param name="endNumber"></param> public void DeleteAccountRecords(int startNumber, int endNumber) { Console.WriteLine("\n############# Deleting Account records between " + startNumber + " and " + endNumber); for (int i = startNumber; i <= endNumber; i++) { //Retrieve guid of TestAccount1 - say Entity is Account and startNumber is 1. ColumnSet cols = new ColumnSet(true); Guid? accountId = GetGuiByAttributeValue("name", "TestAccount" + i, Account.EntityLogicalName); if (accountId == null) { Console.WriteLine("Error : Did not return Guid for TestAccount" + i + ", May be its deleted already?"); continue; } CrmSdk.Account retrievedAccount = (CrmSdk.Account)Context.Proxy.Retrieve("account", (Guid)accountId, cols); Console.WriteLine("Deleting TestAccount" + i); Context.Proxy.Delete(Account.EntityLogicalName, (Guid)accountId); } }