using System; using System.Linq; using HayerCrmPackage.Plugins.Entities; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Client; using Microsoft.Xrm.Sdk.Query; namespace HayerCrmPackage.Plugins { public class PreCaseCreate : Plugin { public PreCaseCreate() : base(typeof(PreCaseCreate)) { base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(20, "Create", "incident", new Action<LocalPluginContext>(ExecutePreCaseCreate))); } protected void ExecutePreCaseCreate(LocalPluginContext localContext) { if (localContext == null) { throw new ArgumentNullException("localContext"); } var pluginContext = localContext.PluginExecutionContext; var service = localContext.OrganizationService; var context = new OrganizationServiceContext(service); // Get Organization Business Closure Calendar Id var organization = service.Retrieve("organization", context.OrganizationId, new ColumnSet("businessclosurecalendarid")); var query = new QueryExpression("calendar") { ColumnSet = new ColumnSet(true), Criteria = new FilterExpression() }; // Add condition to get Get Calander where CalanderId is equal to Organization's businessclosurecalendarid query.Criteria.AddCondition(new ConditionExpression("calendarid", ConditionOperator.Equal, organization["businessclosurecalendarid"].ToString())); // Get Calendar var businessClosureCalendar = service.RetrieveMultiple(query).Entities[0]; // Get the Calendar rules IEnumerable<Entity> calanderRules = businessClosureCalendar != null ? businessClosureCalendar.GetAttributeValue<EntityCollection>("calendarrules").Entities : null; } } }
To know how to add working days by calculating business closure dates and weekends, please check my blog Here.
Happy Coding
P. S. Hayer
(ਪ੍ਰੇਮਜੀਤ ਸਿੰਘ ਹੇਰ)
Please check my other (non-CRM) blog here:
Programming Blogs
No comments :
Post a Comment