• Share
    • Twitter
    • LinkedIn
    • Facebook
    • Email
  • Feedback
  • Edit
Show / Hide Table of Contents

How to add a new contact interest

Some tooltip text!
• 4 minutes to read
 • 4 minutes to read

When adding a new contact interest, new rows should be added to multiple tables such as ContInt, ContactInterest, ConIntGroupLink, and the ContIntHeadingLink table. Here, we use the SuperOffice.CRM.Rows namespace.

Note

This is not the same as setting an existing interest on.

Code

The code segment below shows us how to add an interest to an existing list.

using SuperOffice;
using SuperOffice.CRM.Rows;
using (SoSession newSession = SoSession.Authenticate("sam", "sam"))
{
  //Retrieve a Contact
  Contact newContact = Contact.GetFromIdxContactId(10);

  //Create a new ContIntRow. Each row represents one row in the ContInt table.
  ContIntRow newConInt = ContIntRow.CreateNew();
  newConInt.SetDefaults();
  newConInt.ElementType = MDOListElementType.SubNode;
  newConInt.Name = "Sam's Interest";
  newConInt.Tooltip = "Sam's Interests";
  newConInt.Save();

  //Create a New ContactInterestRow. Each row represents one row in the ContactInterest table.
  ContactInterestRow newconIntRw = ContactInterestRow.CreateNew();
  newconIntRw.SetDefaults();
  newconIntRw.CinterestIdx = newConInt.ContIntId;
  newconIntRw.ContactId = newContact.ContactId;
  newconIntRw.EndDate = DateTime.MaxValue;
  newconIntRw.StartDate = DateTime.MinValue;
  newconIntRw.Save();

  //Create a new ContIntGroupLinkRow. Each row represents one row in the ContIntGroupLink table.
  // You would need to create a new row for each group that you require the interest to be visible for.
  ContIntGroupLinkRow newContGrpLink = ContIntGroupLinkRow.CreateNew();
  newContGrpLink.SetDefaults();
  newContGrpLink.ContIntId = newConInt.ContIntId;
  newContGrpLink.GroupId = SoContext.CurrentPrincipal.GroupId;
  newContGrpLink.Save();

  //Since the ContInt is defined as a SubItem, we need to give a header to fall under.
  //For this we create a new ContIntHeadingLinkRow. Each row represents one row in the ContIntHeadingLink table.
  ContIntHeadingLinkRow newContHeadingRow = ContIntHeadingLinkRow.CreateNew();
  newContHeadingRow.SetDefaults();
  newContHeadingRow.ContIntId = newConInt.ContIntId;

  //looking up and assigning the heading Id.                  
  newContHeadingRow.HeadingId = newContact.InterestHelper.HeadingItems[0].Heading.Id;
  newContHeadingRow.Save();
}

Walk-through

Above, we first create ContIntRow using the CreateNew method and assign values to its properties. Then we save it using the Save method available in the ContIntRow class.

Next, we create a ContactInterestRow and assign the ID of the earlier created ContIntRow to the ContactInterestRow’s CinterestIdx. We also assign the ContactId property to the ID of contact as well.

ContIntGroupLinkRow

Next, we need to create a ContIntGroupLinkRow. Here we assign the group ID of the currently logged-in associate. But if you wish to add multiple groups for which the contact interest will be visible, the following code segment may be useful.

int[] groupIds = { 2, 3, 4, 5, 6 };
ContIntGroupLinkRows newContGrpLinkRows =
ContIntGroupLinkRows.GetFromIdxContIntId(newConInt.ContIntId);
foreach (int groupId in groupIds)
{
  ContIntGroupLinkRow newContGrpLinkRow = newContGrpLinkRows.AddNew();
  newContGrpLinkRow.SetDefaults();
  newContGrpLinkRow.GroupId = groupId;
  newContGrpLinkRow.Save();
}

ContIntHeadingLinkRow

Finally, we need to create a ContIntHeadingLinkRow. This is necessary because the ContInt is defined as a sub-item, we would need to create a heading that it should fall under.

This is done by calling CreateNew()in the ContIntHeadingLinkRow class and assigning values to its properties.

Result

Once the example code is executed, the following rows will be added to the tables as shown below.

ContInt table:

ContInt_id name rank tooltip deleted registered ...
1 Reference cust. 1 Referansekunde 0 0
2 Prestige cust. 2 Prestisjekunde 0 0
3 Big customer 3 Storkunde 0 0
4 Sam's Interest 0 Sam's Interests 0 1214207393

ContactInterest table:

contactinterest_id contact_id cinterest_idx startDate endDate flags registered
6 1 4 0 31.12.2021 02:13:49 0 28.10.2021 13.14:59
1 1 1 0 31.12.2021 02:13:49 0 28.10.2021 13.14:59
2 4 2 0 31.12.2021 02:13:49 0 28.10.2021 13.14:59
3 9 3 0 31.12.2021 02:13:49 0 28.10.2021 13.14:59

ConIntGroupLink table:

contintgrouplink contint_id group_id registered registered_associate ...
1 4 1 1214207393 103

ContIntHeadingLink table:

contintheadinglink contint_id heading_id registered registerred_ass ...
1 4 24 1214207393 103
In This Article
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top