Skip to content

Instantly share code, notes, and snippets.

@rappen
Created September 23, 2022 15:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rappen/4076c1031fda9cebcfde37c01e34830c to your computer and use it in GitHub Desktop.
Save rappen/4076c1031fda9cebcfde37c01e34830c to your computer and use it in GitHub Desktop.
Sample of IOrganizationService implementation
#region IOrganizationService implementation
public Guid Create(Entity entity)
{
Trace($"Creating {entity.LogicalName} with {entity.Attributes.Count} attributes");
var result = Service.Create(entity);
Trace("Created!");
return result;
}
public Entity Retrieve(string entityName, Guid id, ColumnSet columnSet)
{
Trace($"Retrieving {entityName} {id} with {columnSet.Columns.Count} attributes");
var result = Service.Retrieve(entityName, id, columnSet);
Trace("Retrieved!");
return result;
}
public Entity Retrieve(EntityReference reference, params string[] columns)
{
return Retrieve(reference.LogicalName, reference.Id, new ColumnSet(columns));
}
public void Update(Entity entity)
{
Trace($"Updating {entity.LogicalName} with {entity.Attributes.Count} attributes");
Service.Update(entity);
Trace("Updated!");
}
public void Delete(string entityName, Guid id)
{
Trace($"Deletng {entityName} {id}");
Service.Delete(entityName, id);
Trace("Deleted!");
}
public void Delete(EntityReference reference)
{
Delete(reference.LogicalName, reference.Id);
}
public OrganizationResponse Execute(OrganizationRequest request)
{
Trace($"Executing {request}");
var result = Service.Execute(request);
Trace("Executed!");
return result;
}
public void Associate(string entityName, Guid entityId, Relationship relationship, EntityReferenceCollection relatedEntities)
{
Trace($"Associating {entityName} {entityId} over {relationship.SchemaName} with {relatedEntities.Count} {string.Join(", ", relatedEntities.Select(r => r.LogicalName))}");
Service.Associate(entityName, entityId, relationship, relatedEntities);
Trace("Associated!");
}
public void Disassociate(string entityName, Guid entityId, Relationship relationship, EntityReferenceCollection relatedEntities)
{
Trace($"Disassociating {entityName} {entityId} over {relationship.SchemaName} with {relatedEntities.Count} {string.Join(", ", relatedEntities.Select(r => r.LogicalName))}");
Service.Disassociate(entityName, entityId, relationship, relatedEntities);
Trace("Disassociated!");
}
public EntityCollection RetrieveMultiple(QueryBase query)
{
Trace($"Retrieving with {query}");
var result = Service.RetrieveMultiple(query);
Trace($"Retrieved {result.Entities.Count} {result.EntityName}");
return result;
}
#endregion IOrganizationService implementation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment