예제 #1
0
        public async Task <writeCaseEformDataResponse> UpdateIntegrationFormFields(IntegrationFormFieldsUpdateModel updateEntity)
        {
            var eformData  = new FWTCaseEformData();
            var formFields = new FWTEformField[0];

            var caseEformInstance = new FWTCaseEformInstance
            {
                CaseReference = updateEntity.CaseReference,
                EformName     = updateEntity.IntegrationFormName
            };

            if (updateEntity.IntegrationFormFields != null && updateEntity.IntegrationFormFields.Any())
            {
                formFields = new FWTEformField[updateEntity.IntegrationFormFields.Count];
                for (int i = 0; i < updateEntity.IntegrationFormFields.Count; i++)
                {
                    var caseFormField = new FWTEformField
                    {
                        FieldName  = updateEntity.IntegrationFormFields[i].FormFieldName,
                        FieldValue = updateEntity.IntegrationFormFields[i].FormFieldValue ?? string.Empty
                    };
                    formFields[i] = caseFormField;
                }
            }

            eformData.CaseEformInstance = caseEformInstance;
            eformData.EformData         = formFields;

            try
            {
                return(await _verintConnection.writeCaseEformDataAsync(eformData));
            }
            catch (Exception e)
            {
                throw new Exception($"UpdateService: UpdateIntegrationFormField threw an exception while attempting to update EForm Data for case {updateEntity.CaseReference}, Exception: {e}");
            }
        }
        public async Task UpdateIntegrationFormField_ShouldUpdateFields()
        {
            // Arrange
            var writeCasecallback = new FWTCaseEformData();
            var entity            = new IntegrationFormFieldsUpdateModel
            {
                CaseReference         = "12344",
                IntegrationFormFields = new List <IntegrationFormField>
                {
                    new IntegrationFormField
                    {
                        FormFieldName  = "field",
                        FormFieldValue = "updatedValue"
                    },
                    new IntegrationFormField
                    {
                        FormFieldName  = "fieldname2",
                        FormFieldValue = "newValue"
                    },
                }
            };

            _mockClient
            .Setup(_ => _.writeCaseEformDataAsync(It.IsAny <FWTCaseEformData>()))
            .ReturnsAsync(new writeCaseEformDataResponse())
            .Callback <FWTCaseEformData>(form => writeCasecallback = form);

            // Act
            await _service.UpdateIntegrationFormFields(entity);

            // Assert
            Assert.Equal(entity.IntegrationFormFields[0].FormFieldValue, writeCasecallback.EformData[0].FieldValue);
            Assert.Equal(entity.IntegrationFormFields[0].FormFieldName, writeCasecallback.EformData[0].FieldName);

            Assert.Equal(entity.IntegrationFormFields[1].FormFieldValue, writeCasecallback.EformData[1].FieldValue);
            Assert.Equal(entity.IntegrationFormFields[1].FormFieldName, writeCasecallback.EformData[1].FieldName);
        }