/// <summary>
        /// Main code activity method
        /// </summary>
        /// <param name="executionContext">Standard execution context</param>
        /// <param name="crmWorkflowContext">Standard workflow context</param>
        public override void ExecuteCRMWorkFlowActivity(CodeActivityContext executionContext, LocalWorkflowContext crmWorkflowContext)
        {
            if (crmWorkflowContext == null)
            {
                throw new ArgumentNullException(nameof(crmWorkflowContext));
            }

            TracingService = executionContext.GetExtension <ITracingService>();
            Service        = crmWorkflowContext.OrganizationService;

            // 1. Validation
            EntityReference applicatEntityReference = this.Application.Get(executionContext);

            if (applicatEntityReference == null)
            {
                TracingService.Trace("Application parameter not set.");
                return;
            }

            TracingService.Trace("Refreshing Answers for Application {0} ", applicatEntityReference.Id);

            // 2. Processing - add and remove application answers as dictated by the application lines
            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(this.Service, this.TracingService);

            dal.RefreshApplicationAnswers(applicatEntityReference.Id);

            TracingService.Trace("Done refreshing Answers for Application {0} ", applicatEntityReference.Id);
        }
Beispiel #2
0
        public void Integration_RefreshApplicationAnswers_Success()
        {
            Entity application = DataAccessIntegrationTestSupport.CreateApplication(OrganizationService);

            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(OrganizationService, new MockTracingService());

            dal.RefreshApplicationAnswers(application.Id);
        }
Beispiel #3
0
        public void Integration_GetApplicationAnswers_Success()
        {
            Entity application = DataAccessIntegrationTestSupport.CreateApplication(OrganizationService);

            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(OrganizationService, new MockTracingService());

            var result = dal.GetApplicationAnswers(application.Id);

            Assert.IsTrue(result == null);
        }
        /// <summary>
        /// Main Execution Method
        /// </summary>
        /// <param name="executionContext">Activity Execution Context</param>
        /// <param name="crmWorkflowContext">Includes organisation service and trace service</param>
        public override void ExecuteCRMWorkFlowActivity(CodeActivityContext executionContext, LocalWorkflowContext crmWorkflowContext)
        {
            // 1. Validation
            if (crmWorkflowContext == null)
            {
                throw new ArgumentNullException(nameof(crmWorkflowContext));
            }
            
            // 2. Processing
            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(crmWorkflowContext.OrganizationService, executionContext.GetExtension<ITracingService>());

            Guid answerId = dal.SetApplicationAnswer(
                QuestionCode.Get<string>(executionContext),
                AnswerOptionCode.Get<string>(executionContext),
                AnswerOptionText.Get<string>(executionContext),
                AnswerApplication.Get<EntityReference>(executionContext),
                AnswerApplicationLine.Get<EntityReference>(executionContext),
                true);

            // 3. Return
            ApplicationAnswer.Set(executionContext, new EntityReference(defra_applicationanswer.EntityLogicalName, answerId));
        }
Beispiel #5
0
        public void Integration_TestSetApplicationAnswerSuccess()
        {
            Entity application = DataAccessIntegrationTestSupport.CreateApplication(OrganizationService);

            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(OrganizationService, new MockTracingService());

            // Create
            Guid answedId1 = dal.SetApplicationAnswer("test-question-1", "answer-1", "", application.ToEntityReference(), null, true);

            // Update
            Guid answedId2 = dal.SetApplicationAnswer("test-question-1", "answer-2", "", application.ToEntityReference(), null, true);

            // Create
            Guid answedId3 = dal.SetApplicationAnswer("test-question-2", "answer-3", "", application.ToEntityReference(), null, true);

            // Update
            Guid answedId4 = dal.SetApplicationAnswer("test-question-2", "answer-4", "Answer Text", application.ToEntityReference(), null, true);

            Assert.IsTrue(answedId1 != Guid.Empty);
            Assert.IsTrue(answedId2 != Guid.Empty);
            Assert.IsTrue(answedId3 != Guid.Empty);
            Assert.IsTrue(answedId4 != Guid.Empty);
        }
Beispiel #6
0
        public void Integration_RefreshApplicationAnswers_DummyDataTest()
        {
            DataAccessApplicationAnswers dal = new DataAccessApplicationAnswers(OrganizationService, new MockTracingService());

            dal.RefreshApplicationAnswers(new Guid("4ffa909e-84fc-e811-a983-000d3ab3984f"));
        }