Пример #1
0
        public void ExecuteBody(CodeActivityContext context)
        {
            LogMessage = "Get Service and In Args";
            var     service       = GetService(context);
            var     postalCode    = postalcode.Get(context);
            decimal taxRate       = new decimal(0.0000);
            string  returnMessage = string.Empty;
            bool    isSuccess     = false;

            LogMessage = "Check for valid postal code";
            if (HelperClass.ValidPostalCode(service, postalCode))
            {
                LogMessage = "Get TaxRate from service";
                taxRate    = HelperClass.getTaxRate(service, trace, postalCode, "TaxJar");
            }
            else
            {
                returnMessage = "Invalid Postal Code value or format";
            }

            LogMessage = "Set Out Params";
            TaxRate.Set(context, taxRate);
            Message.Set(context, returnMessage);
            IsSuccess.Set(context, isSuccess);
        }
Пример #2
0
        public void ExecuteBody(CodeActivityContext context)
        {
            LogMessage = "Get Service and In Args";
            var     service       = GetService(context);
            var     postalCode    = postalcode.Get(context);
            var     taxableAmount = taxableamount.Get(context);
            decimal taxRate       = new decimal(0.0000);
            decimal taxAmount     = new decimal(0.0000);
            string  returnMessage = string.Empty;
            bool    isSuccess     = false;

            LogMessage = "Check for valid postal code";
            if (HelperClass.ValidPostalCode(service, postalCode))
            {
                LogMessage = "Get TaxRate from service and calculate TaxAmount";
                taxRate    = HelperClass.getTaxRate(service, trace, postalCode, "TaxJar");
                taxAmount  = taxRate * taxableAmount;
                // would normally pull in entire Order entity and run based on header and line item info
            }
            else
            {
                returnMessage = "Invalid Postal Code value or format";
            }

            LogMessage = "Set Out Params";
            TaxAmount.Set(context, taxAmount);
            Message.Set(context, returnMessage);
            IsSuccess.Set(context, isSuccess);
        }
        protected override void Execute(CodeActivityContext activityContext, IWorkflowContext workflowContext, IOrganizationService crmService,
                                        ITracingService tracingService)
        {
            try
            {
                // Get the Source Record URL
                string sourceRecordUrl = SourceRecord.Get(activityContext);

                if (string.IsNullOrEmpty(sourceRecordUrl))
                {
                    Message.Set(activityContext, "Source Record URL cannot be empty or null");
                    return;
                }

                // Convert Record URL to ER
                EntityReference sourceRecordEr = EntityRecordUrlHelpers.ConvertRecordUrLtoEntityReference(sourceRecordUrl, crmService);
                if (sourceRecordEr == null)
                {
                    Message.Set(activityContext, "Failed to convert record URL into Entity Reference. Please make sure you provide valid record URL");
                    return;
                }

                var recordId = sourceRecordEr.Id;
                var annotation_isdocument = true;
                var query = new QueryExpression(sourceRecordEr.LogicalName);
                query.Distinct = true;
                query.ColumnSet.AddColumns("createdon");
                query.Criteria.AddCondition($"{sourceRecordEr.LogicalName}id", ConditionOperator.Equal, recordId);
                var queryAnnotation = query.AddLink("annotation", $"{sourceRecordEr.LogicalName}id", "objectid");
                queryAnnotation.EntityAlias = "aa";
                queryAnnotation.LinkCriteria.AddCondition("isdocument", ConditionOperator.Equal, annotation_isdocument);
                queryAnnotation.LinkCriteria.AddCondition("filename", ConditionOperator.NotNull);
                var results = crmService.RetrieveMultiple(query);

                if (!results.Entities.Any())
                {
                    // No attachments found
                    HasAttachment.Set(activityContext, false);
                    return;
                }

                // Attachments found
                HasAttachment.Set(activityContext, true);
                IsSuccess.Set(activityContext, true);
            }
            catch (Exception ex)
            {
                IsSuccess.Set(activityContext, false);
                Message.Set(activityContext, "An error occurred while check for attachments -" + ex.Message);
            }
        }
Пример #4
0
        protected override void Execute(CodeActivityContext activityContext, IWorkflowContext workflowContext, IOrganizationService CrmService, ITracingService trace)
        {
            try
            {
                string userName = UserFullName.Get(activityContext);

                if (string.IsNullOrWhiteSpace(userName))
                {
                    IsSuccess.Set(activityContext, false);
                    Message.Set(activityContext, "User's Full Name  is not provided");
                    return;
                }

                var QEsystemuser = new QueryExpression("systemuser");
                QEsystemuser.ColumnSet.AddColumns("fullname");
                var QEsystemuser_Criteria_0 = new FilterExpression();
                QEsystemuser.Criteria.AddFilter(QEsystemuser_Criteria_0);
                QEsystemuser_Criteria_0.FilterOperator = LogicalOperator.Or;
                QEsystemuser_Criteria_0.AddCondition("fullname", ConditionOperator.Equal, userName);
                QEsystemuser_Criteria_0.AddCondition("fullname", ConditionOperator.Equal, ChangeNameOrder(userName));
                var results = CrmService.RetrieveMultiple(QEsystemuser);

                if (results == null || !results.Entities.Any())
                {
                    IsSuccess.Set(activityContext, false);
                    Message.Set(activityContext, "User with " + userName + " not found");
                    return;
                }

                if (results.Entities.Count > 1)
                {
                    IsSuccess.Set(activityContext, false);
                    Message.Set(activityContext, "Multiple users found with same name : " + userName);
                    return;
                }


                IsSuccess.Set(activityContext, true);
                PreparedBy.Set(activityContext, results.Entities.Single().ToEntityReference());
            }
            catch (Exception ex)
            {
                IsSuccess.Set(activityContext, false);
                Message.Set(activityContext, "An error occurred trying to find user : " + ex.Message);
            }
        }
Пример #5
0
 protected override void Execute(CodeActivityContext context)
 {
     try
     {
         trace = this.GetTracingService(context);
         this.ExecuteBody(context);
         trace.Trace("Executed body");
     }
     catch (Exception ex)
     {
         if (trace != null)
         {
             trace.Trace(String.Format("{0} - {1}", LogMessage, ex.Message));
         }
         Message.Set(context, String.Format("{0} - {1}", LogMessage, ex.Message));
         IsSuccess.Set(context, false);
     }
 }
Пример #6
0
        protected override void Execute(CodeActivityContext context)
        {
            //throw new NotImplementedException();
            ITracingService             tracingService  = context.GetExtension <ITracingService>();
            IWorkflowContext            workflowContext = context.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory  = context.GetExtension <IOrganizationServiceFactory>();
            IOrganizationService        service         = serviceFactory.CreateOrganizationService(workflowContext.UserId);
            CrmServiceContext           xrm             = new CrmServiceContext(service);

            try
            {
                ActivityParty from = new ActivityParty();
                from.PartyId = new EntityReference("systemuser", workflowContext.UserId);
                //SystemUser to = xrm.SystemUserSet.Where(p => p.Id == UserInput.Get(context).Id).FirstOrDefault();
                ActivityParty to = new ActivityParty();
                to.PartyId = new EntityReference("systemuser", UserInput.Get(context).Id);

                Email email = new Email
                {
                    From          = new ActivityParty[] { from },
                    To            = new ActivityParty[] { to },
                    Subject       = "Test Workflow",
                    Description   = TextInput.Get(context),
                    DirectionCode = true,
                    ScheduledEnd  = DateTime.Now.AddDays(1)
                };
                Guid emailId = service.Create(email);

                SendEmailRequest sendEmail = new SendEmailRequest();
                sendEmail.EmailId       = emailId;
                sendEmail.TrackingToken = string.Empty;
                sendEmail.IssueSend     = true;
                service.Execute(sendEmail);
                IsSuccess.Set(context, true);
            }
            catch (Exception ex)
            {
                //throw new InvalidPluginExecutionException($"An error occured in worlflow: {ex.Message}");
                IsSuccess.Set(context, false);
            }
        }
Пример #7
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                MailMessage message = new MailMessage();
                SmtpClient  smtp    = new SmtpClient();
                if (string.IsNullOrEmpty(FromEmailAddress.Get(context)))
                {
                    message.From = new MailAddress(SMTP_Email.Get(context));
                }
                else
                {
                    message.From = new MailAddress(FromEmailAddress.Get(context));
                }


                foreach (string emailid in ToEmailAddress.Get(context).Trim().Split(';'))
                {
                    message.To.Add(new MailAddress(emailid));
                }

                if (!string.IsNullOrEmpty(CCEmailAddress.Get(context)))
                {
                    foreach (string emailid in CCEmailAddress.Get(context).Trim().Split(';'))
                    {
                        message.CC.Add(new MailAddress(emailid));
                    }
                }

                if (!string.IsNullOrEmpty(BccEmailAddress.Get(context)))
                {
                    foreach (string emailid in BccEmailAddress.Get(context).Trim().Split(';'))
                    {
                        message.Bcc.Add(new MailAddress(emailid));
                    }
                }


                message.Subject    = Subject.Get(context).Trim();
                message.IsBodyHtml = IsBodyHtml.Get(context); //to make message body as html
                message.Body       = Body.Get(context).Trim();

                Console.WriteLine("----------------------");


                if (MailAttachments.Get(context) != null)
                {
                    Console.WriteLine("Number of Attachments: " + MailAttachments.Get(context).Count.ToString());
                    foreach (string file in MailAttachments.Get(context))
                    {
                        message.Attachments.Add(new Attachment(file));
                    }
                }


                smtp.Port                  = Convert.ToInt32(SMTP_Port.Get(context));
                smtp.Host                  = SMTP_Server.Get(context).Trim();
                smtp.EnableSsl             = EnableSsl.Get(context);
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = new System.Net.NetworkCredential(SMTP_Email.Get(context), SMTP_password.Get(context));
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.Send(message);
                IsSuccess.Set(context, true);
                Result.Set(context, string.Empty);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message + "--" + e.Source);
                IsSuccess.Set(context, false);
                Result.Set(context, "Error: " + e.Message);
            }
        }