i have a lot of repeating code in many plugins - how can i group them into a utility class so they can be reused for each plugin? example code like this is used in all my plugins. any suggestions? thanks
//set service ICrmService crmService = context.CreateCrmService(true); if (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity) { portal_opportunityproduct = (DynamicEntity)context.InputParameters.Properties["Target"]; if (portal_opportunityproduct.Name != "portal_opportunityproduct") { return; } else { if (context.MessageName == "Create") { try {
private DynamicEntity GetEntities(Guid entityGuid, ICrmService crmService) { ColumnSet productColumns = new ColumnSet(); productColumns.AddColumn("portal_description"); ConditionExpression condition = new ConditionExpression(); condition.AttributeName = "portal_productid"; condition.Operator = ConditionOperator.Equal; condition.Values = new object[] { entityGuid}; FilterExpression filter = new FilterExpression(); filter.FilterOperator = LogicalOperator.And; filter.Conditions.Add(condition); QueryExpression query = new QueryExpression(); query.EntityName = "portal_product"; query.ColumnSet = productColumns; query.Criteria = filter; RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest(); retrieve.ReturnDynamicEntities = true; retrieve.Query = query; RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)crmService.Execute(retrieve); BusinessEntityCollection collection = (BusinessEntityCollection)retrieved.BusinessEntityCollection; if (collection != null) { return (DynamicEntity)collection.BusinessEntities[0]; } return null; }