Example #1
0
        private void ApprovalPostCreate(LocalPluginContext context)
        {
            var svc      = context.OrganizationService;
            var approval = context.PluginExecutionContext.InputParameters["Target"] as Entity;

            var approvalDetails = new Approval(svc, approval);

            if (approvalDetails.CheckApprovalAssigned(svc))
            {
                var agreement   = approvalDetails.Agreement;
                var opportunity = approvalDetails.Opportunity;

                if ((ApprovalEntity)approvalDetails.ApprovalEntity.Value == ApprovalEntity.Agreement /*Agreement*/ &&
                    (ApprovalAction)approvalDetails.ApprovalAction.Value == ApprovalAction.Approved)
                {
                    approvalDetails.CheckApproval(svc, approvalDetails, context.PluginExecutionContext.UserId, approvalDetails.AgreementRef.LogicalName);
                }
                else if ((ApprovalEntity)approvalDetails.ApprovalEntity.Value == ApprovalEntity.Opportunity /*Opportunity*/ &&
                         (ApprovalAction)approvalDetails.ApprovalAction.Value == ApprovalAction.Approved)
                {
                    approvalDetails.CheckApproval(svc, approvalDetails, context.PluginExecutionContext.UserId, approvalDetails.AgreementRef.LogicalName);
                }
                else if ((ApprovalEntity)approvalDetails.ApprovalEntity.Value == ApprovalEntity.Agreement /*Agreement*/ &&
                         (ApprovalAction)approvalDetails.ApprovalAction.Value == ApprovalAction.Rejected)
                {
                    approvalDetails.RejectAgreement(svc, approvalDetails, context.PluginExecutionContext.UserId);
                }
                else if ((ApprovalEntity)approvalDetails.ApprovalEntity.Value == ApprovalEntity.Opportunity /*Opportunity*/ &&
                         (ApprovalAction)approvalDetails.ApprovalAction.Value == ApprovalAction.Rejected)
                {
                    approvalDetails.RejectOpportunity(svc, approvalDetails, context.PluginExecutionContext.UserId);
                }
            }
        }