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); }
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); } }
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); } }
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); } }
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); } }
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); } }