コード例 #1
0
        protected override void Execute(CodeActivityContext context)
        {
            // Get the context service.
            IWorkflowContext            Icontext       = context.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = context.GetExtension <IOrganizationServiceFactory>();

            // Use the context service to create an instance of IOrganizationService.
            IOrganizationService service = serviceFactory.CreateOrganizationService(Icontext.UserId); // user = SDU\SQLCRMDynWorkF

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

            tracingService.Trace("EXECUTE.....");

            try
            {
                var relatedRecords = CreateEmailTemplate.QueryForRelatedRecords(true, Icontext.PrimaryEntityId, service, "sdu_adgangtilitsystem");
                var contact        = service.Retrieve(Contact.Get(context).LogicalName, Contact.Get(context).Id, new ColumnSet(true));
                tracingService.Trace("CONTACTID " + contact.Id.ToString());
                var parameters = service.Retrieve(ParameterReference.Get(context).LogicalName, ParameterReference.Get(context).Id, new ColumnSet(true));
                tracingService.Trace("PARAMETERS " + parameters.Id.ToString());
                var emailSender = parameters.GetAttributeValue <EntityReference>("sdu_baemailafsender");
                tracingService.Trace("EMAILSENDER " + emailSender.Id.ToString());



                if (relatedRecords.Count > 0)
                {
                    GroupRightsTogether(service, emailSender.Id, Icontext, relatedRecords, new Person()
                    {
                        FullName = contact.GetAttributeValue <string>("fullname"), Email = contact.GetAttributeValue <string>("emailaddress1")
                    }, parameters, tracingService);
                    //var emailBody = ConstructEmailBody(groupedRigths);
                    //SendEmail(service, Icontext.UserId, Icontext.PrimaryEntityId, "*****@*****.**", emailBody, ".....");
                }
            }
            catch (Exception ex)
            {
                tracingService.Trace(ex.ToString());
                throw;
            }
        }