Ejemplo n.º 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);
                }
            }
        }
Ejemplo n.º 2
0
        private void ApprovalUpdate(LocalPluginContext context)
        {
            var            svc            = context.OrganizationService;
            var            approval       = new Approval(svc, context.PluginExecutionContext.InputParameters["Target"] as Entity);
            var            preApproval    = new Approval(svc, context.PreImage);
            OptionSetValue approvalEntity = null;
            OptionSetValue approvalAction = null;
            var            agreement      = approval.Agreement;
            var            opportunity    = approval.Opportunity;

            if (approval.ApprovalEntity != null)
            {
                approvalEntity = approval.ApprovalEntity;
            }
            else
            {
                approvalEntity = preApproval.ApprovalEntity;
            }

            if (approval.ApprovalAction != null)
            {
                approvalAction = approval.ApprovalAction;
            }
            else
            {
                approvalAction = preApproval.ApprovalAction;
            }

            if ((ApprovalEntity)approvalEntity.Value == ApprovalEntity.Agreement &&
                (ApprovalAction)approvalAction.Value == ApprovalAction.Approved)
            {
                approval.CheckApproval(svc, approval, context.PluginExecutionContext.UserId, approval.AgreementRef.LogicalName);
            }
            else if ((ApprovalEntity)approvalEntity.Value == ApprovalEntity.Agreement &&
                     (ApprovalAction)approvalAction.Value == ApprovalAction.Rejected)
            {
                approval.RejectAgreement(svc, approval, context.PluginExecutionContext.UserId);
            }
            else if ((ApprovalEntity)approvalEntity.Value == ApprovalEntity.Opportunity &&
                     (ApprovalAction)approvalAction.Value == ApprovalAction.Approved)
            {
                approval.CheckApproval(svc, approval, context.PluginExecutionContext.UserId, approval.OpportunityRef.LogicalName);
            }
            else if ((ApprovalEntity)approvalEntity.Value == ApprovalEntity.Opportunity &&
                     (ApprovalAction)approvalAction.Value == ApprovalAction.Rejected)
            {
                approval.RejectOpportunity(svc, approval, context.PluginExecutionContext.UserId);
            }

            if ((ApprovalAction)approvalAction.Value == ApprovalAction.Approved ||
                (ApprovalAction)approvalAction.Value == ApprovalAction.Rejected)
            {
                approval.SetApprovalStatus(svc, approval._Approval);
            }
        }