private static void CreateActivityPartiesFromSingleFields <T>(LocalCrmDatabaseOrganizationService service, T entity) where T : Entity { foreach (var att in entity.Attributes.Where(a => ActivityPartyFields.Contains(a.Key))) { service.CreateActivityParty(new Entity { LogicalName = ActivityParty.EntityLogicalName, [ActivityParty.Fields.PartyId] = att.Value, [ActivityParty.Fields.ActivityId] = entity.ToEntityReference(), [ActivityParty.Fields.ParticipationTypeMask] = MapFieldToParticipation(att.Key) }); } }
private static void CreateActivityPartiesFromPartyLists <T>(LocalCrmDatabaseOrganizationService service, T entity) where T : Entity { foreach (var att in entity.Attributes.Where(a => a.Value is EntityCollection)) { var entities = (EntityCollection)att.Value; foreach (var party in entities.Entities.Where(p => p.LogicalName == ActivityParty.EntityLogicalName)) { if (party.GetAttributeValue <EntityReference>(ActivityParty.Fields.PartyId) == null) { throw new NullReferenceException("Activity Party PartyId was null"); } party[ActivityParty.Fields.ActivityId] = entity.ToEntityReference(); if (party.GetAttributeValue <object>(ActivityParty.Fields.ParticipationTypeMask) == null) { party[ActivityParty.Fields.ParticipationTypeMask] = MapFieldToParticipation(att.Key); } service.CreateActivityParty(party); } } }