Example #1
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            var context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
            {
                return;
            }

            Entity entity = (Entity)context.InputParameters["Target"];

            if (entity.LogicalName != "account")
            {
                return;
            }

            try
            {
                using (var webClient = new WebClient())
                {
                    var jsonResult   = webClient.DownloadString("https://jsonplaceholder.typicode.com/users");
                    var parsedResult = JArray.Parse(jsonResult);
                    tracingService.Trace("Number of users retrieved: {0}", parsedResult.Count);
                }


                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                _organizationService = serviceFactory.CreateOrganizationService(context.UserId);

                _organizationContext = new OrganisationServiceContext(_organizationService);

                var emails = GetEmails(entity.Id);
                foreach (var email in emails)
                {
                    if (string.IsNullOrEmpty(email.Subject))
                    {
                        CloseEmailAsCancelled(email);
                    }
                    else
                    {
                        email.ScheduledStart = DateTime.Today.AddDays(10);
                        UpdateEntity(email);
                    }
                }

                Commit();
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the FollowupPlugin plug-in.", ex);
            }
            catch (Exception ex)
            {
                tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
                throw;
            }
        }
Example #2
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            var context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
            {
                return;
            }

            Entity entity = (Entity)context.InputParameters["Target"];

            if (entity.LogicalName != "account")
            {
                return;
            }

            try
            {
                var cloudService = (IServiceEndpointNotificationService)serviceProvider.GetService(typeof(IServiceEndpointNotificationService));
                if (cloudService == null)
                {
                    throw new InvalidPluginExecutionException("Failed to retrieve the service bus service.");
                }
                string response = cloudService.Execute(new EntityReference("serviceendpoint", serviceEndpointId), context);


                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                _organizationService = serviceFactory.CreateOrganizationService(context.UserId);

                _organizationContext = new OrganisationServiceContext(_organizationService);

                var emails = GetEmails(entity.Id);
                foreach (var email in emails)
                {
                    if (string.IsNullOrEmpty(email.Subject))
                    {
                        CloseEmailAsCancelled(email);
                    }
                    else
                    {
                        email.ScheduledStart = DateTime.Today.AddDays(10);
                        UpdateEntity(email);
                    }
                }

                Commit();
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the FollowupPlugin plug-in.", ex);
            }
            catch (Exception ex)
            {
                tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
                throw;
            }
        }
        protected override void Execute(CodeActivityContext executionContext)
        {
            //var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            //var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            //if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
            //    return;

            //Entity entity = (Entity)context.InputParameters["Target"];

            //if (entity.LogicalName != "account")
            //    return;

            //IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            //_organizationService = serviceFactory.CreateOrganizationService(context.UserId);

            var tracingService = executionContext.GetExtension <ITracingService>();

            //Create the context
            var context        = executionContext.GetExtension <IWorkflowContext>();
            var serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();

            _organizationService = serviceFactory.CreateOrganizationService(context.UserId);


            try
            {
                var accountId = Guid.Parse(AccountGuid.Get <string>(executionContext));

                _organizationContext = new OrganisationServiceContext(_organizationService);

                var emails = GetEmails(accountId);
                foreach (var email in emails)
                {
                    if (string.IsNullOrEmpty(email.Description))
                    {
                        CloseEmailAsCancelled(email);
                    }
                    else
                    {
                        email.ScheduledStart = DateTime.Today.AddDays(10);
                        UpdateEntity(email);
                    }
                }

                Commit();
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the UpdateActivities plug-in.", ex);
            }
            catch (Exception ex)
            {
                tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
                throw;
            }
        }
Example #4
0
 public void Connect()
 {
     using (var serviceProxy = _crmSvc.OrganizationServiceProxy)
     {
         serviceProxy.EnableProxyTypes();
         using (var organisationContext = new OrganisationServiceContext(serviceProxy))
         {
             //Your code goes here
         }
     }
 }
Example #5
0
        public void Execute(IServiceProvider serviceProvider)
        {
            var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            var context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
            {
                return;
            }

            Entity entity = (Entity)context.InputParameters["Target"];

            if (entity.LogicalName != "account")
            {
                return;
            }

            try
            {
                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                _organizationService = serviceFactory.CreateOrganizationService(context.UserId);

                _organizationContext = new OrganisationServiceContext(_organizationService);

                var accountId = entity.Id;


                var emails = GetEmails(accountId);
                foreach (var email in emails)
                {
                    if (string.IsNullOrEmpty(email.Description))
                    {
                        CloseEmailAsCancelled(email);
                    }
                    else
                    {
                        email.ScheduledStart = DateTime.Today.AddDays(10);
                        UpdateEntity(email);
                    }
                }

                Commit();
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the UpdateActivities plug-in.", ex);
            }
            catch (Exception ex)
            {
                tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
                throw;
            }
        }
        public IEnumerable <Email> GetEmails(Guid parentEntityId)
        {
            _organizationContext = new OrganisationServiceContext(_organizationService);

            var query = from email in _organizationContext.EmailSet
                        where email.RegardingObjectId.Id == parentEntityId
                        &&
                        email.StateCode == EmailState.Open
                        select new Email
            {
                Id          = email.Id,
                Description = email.Description
            };

            return(query.ToList());
        }
Example #7
0
        public DAL()
        {
            var connectionString = "AuthType=Office365;[email protected];Password=;Url=https://.crm6.dynamics.com";

            var crmSvc = new CrmServiceClient(connectionString);


            using (var serviceProxy = crmSvc.OrganizationServiceProxy)
            {
                serviceProxy.EnableProxyTypes();
                using (var organisationContext = new OrganisationServiceContext(serviceProxy))
                {
                    //Your code goes here
                }
            }
        }
 public void SetOrganisationServiceProxy(IOrganizationService organisationService)
 {
     _organizationService = organisationService;
     _organizationContext = new OrganisationServiceContext(_organizationService);
 }
Example #9
0
 public BaseDataAccessLayer(IOrganizationService organizationService)
 {
     OrganizationService = organizationService;
     OrganizationContext = new OrganisationServiceContext(OrganizationService);
 }