public static Entity GetBusinessProcessFlowInstanceRelatedToApplicant(IOrganizationService service, string bpfEntityName, Guid applicantId, Guid processId) { var columns = new [] { "bpf_eppei_applicantid", "processid", "traversedpath", "activestageid" }; var conditions = new[] { new ConditionExpression("bpf_eppei_applicantid", ConditionOperator.Equal, applicantId), new ConditionExpression("processid", ConditionOperator.Equal, processId) }; var bpfInstanceRecord = Qe.QueryRecord(service, bpfEntityName, columns, conditions); return(bpfInstanceRecord); }
public static Entity GetBpfApplicantRecordRelatedToApplicant(IOrganizationService service, Entity applicant) { /*Applicant's Attributes Validation*/ if (!applicant.Attributes.Contains("eppei_iseskom") || !applicant.Attributes.Contains("eppei_academicdegreeid")) { return(null); } /*Query Qualification*/ var qualificationEr = (EntityReference)applicant.Attributes["eppei_academicdegreeid"]; var isEskom = (bool)applicant.Attributes["eppei_iseskom"]; /*Query BPF Applicant Record*/ var columns = new [] { "eppei_businessprocessflowid", "eppei_bbfapplicantid", "eppei_bpfentityname", "eppei_iseskom", "eppei_qualificationid" }; var conditions = new[] { new ConditionExpression("eppei_iseskom", ConditionOperator.Equal, isEskom), new ConditionExpression("eppei_qualificationid", ConditionOperator.Equal, qualificationEr.Id) }; var bpfApplicantRecord = Qe.QueryRecord(service, "eppei_bbfapplicant", columns, conditions); return(bpfApplicantRecord); }
public static Entity GetApplicant(IOrganizationService service, Guid applicantId, string[] columns) { var applicant = Qe.QueryRecord(service, "eppei_applicant", applicantId, columns); return(applicant); }
public static Entity GetApplicantWithAllAttributes(IOrganizationService service, Guid applicantId) { var applicant = Qe.QueryRecord(service, "eppei_applicant", applicantId, true); return(applicant); }
public void Execute(IServiceProvider serviceProvider) { var trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = factory.CreateOrganizationService(context.UserId); var payment = ((Entity)context.InputParameters["Target"]); if (!payment.Attributes.Contains("blu_orderid")) { return; } var orderEr = (EntityReference)payment.Attributes["blu_orderid"]; var columns = new[] { "opportunityid" }; var conditions = new[] { new ConditionExpression("salesorderid", ConditionOperator.Equal, orderEr.Id) }; var order = Qe.QueryRecord(service, "salesorder", columns, conditions); if (order == null || order.Attributes == null || !order.Attributes.Contains("opportunityid")) { return; } var opportunityEr = (EntityReference)order.Attributes["opportunityid"]; columns = new[] { "blu_regardingpropertyid" }; conditions = new[] { new ConditionExpression("opportunityid", ConditionOperator.Equal, opportunityEr.Id) }; var opportunity = Qe.QueryRecord(service, "opportunity", columns, conditions); if (opportunity == null || opportunity.Attributes == null || !opportunity.Attributes.Contains("blu_regardingpropertyid")) { return; } var propertyEr = (EntityReference)opportunity.Attributes["blu_regardingpropertyid"]; columns = new[] { "productid" }; conditions = new[] { new ConditionExpression("opportunityid", ConditionOperator.Equal, opportunityEr.Id) }; var opportunityProducts = Qe.QueryMultipleRecords(service, "opportunityproduct", columns, conditions); if (opportunityProducts == null || opportunityProducts.Count == 0) { return; } var opportunityProduct = opportunityProducts[0]; var productEr = (EntityReference)opportunityProduct.Attributes["productid"]; columns = new[] { "scheduledstart", "scheduledend", "ownerid" }; conditions = new[] { new ConditionExpression("regardingobjectid", ConditionOperator.Equal, order.Id) }; var appointments = Qe.QueryMultipleRecords(service, "appointment", columns, conditions); foreach (var appointment in appointments) { var inspectionDetail = new InspectionDetail() { Name = "InspectionDetail | " + productEr.Name + " | " + propertyEr.Name, InspectionId = propertyEr.Id, AppointmentId = appointment.Id, OrderId = order.Id, OwnerId = ((EntityReference)appointment["ownerid"]).Id, ProductId = productEr.Id }; CreateInspectionDetail(service, inspectionDetail); } }