Esempio n. 1
0
        public async Task <VerintOnlineFormResponse> AttachVOF(VerintOnlineFormRequest model)
        {
            if (model.VerintCase == null ||
                string.IsNullOrEmpty(model.VerintCase.CaseReference) ||
                model.FormData == null ||
                !model.FormData.Any())
            {
                throw new ArgumentNullException("VerintOnlineFormService:AttachVOF - VerintOnlineFormRequest: Form, case data or Case.CaseReference were null or empty");
            }

            var createVOFResponse = await _VOFConnection.CreateAsync(new CreateRequest
            {
                caseid = model.VerintCase.CaseReference,
                name   = model.FormName,
                data   = new Data
                {
                    formdata = new[] {
                        new Field
                        {
                            name = "le_eventcode",
                            Item = model.VerintCase.EventCode.ToString()
                        }
                    }
                }
            });

            if (string.IsNullOrEmpty(createVOFResponse.CreateResponse.@ref))
            {
                throw new Exception("VerintOnlineFormService.CreateVOFCase: VerintOnlineForms-WebService.CreateAsync failed to create basic case.");
            }

            var updateVOFResponse = await _VOFConnection.UpdateAsync(new UpdateRequest
            {
                @ref              = createVOFResponse.CreateResponse.@ref,
                caseid            = model.VerintCase.CaseReference,
                name              = model.FormName,
                completeSpecified = true,
                complete          = stringBoolean.Y,
                dataupdate        = dataupdate.overwrite,
                data              = new Data
                {
                    formdata = model.FormData.Select(_ => new Field {
                        name = _.Key, Item = _.Value
                    }).ToArray()
                }
            });

            if (string.IsNullOrEmpty(updateVOFResponse?.UpdateResponse?.status) || !updateVOFResponse.UpdateResponse.status.ToLower().Equals("success"))
            {
                throw new Exception("VerintOnlineFormService.CreateVOFCase: VerintOnlineForms-WebService.UpdateAsync failed to update case details.");
            }

            return(new VerintOnlineFormResponse
            {
                VerintCaseReference = model.VerintCase.CaseReference,
                VerintOnlineFormReference = createVOFResponse.CreateResponse.@ref
            });
        }
        public async Task CreateCase_ShouldCallVerintGatewayWithCRMCase()
        {
            VerintOnlineFormRequest crmCaseParameter = null;

            _mockVerintServiceGateway
            .Setup(_ => _.GetStreet(It.IsAny <string>()))
            .ReturnsAsync(new HttpResponse <AddressSearchResult>
            {
                IsSuccessStatusCode = true,
                ResponseContent     = new AddressSearchResult
                {
                    USRN = "test"
                }
            });

            _mockVerintServiceGateway
            .Setup(_ => _.CreateVerintOnlineFormCase(It.IsAny <VerintOnlineFormRequest>()))
            .Callback <VerintOnlineFormRequest>(_ => crmCaseParameter = _)
            .ReturnsAsync(new HttpResponse <VerintOnlineFormResponse>
            {
                IsSuccessStatusCode = true,
                ResponseContent     = new VerintOnlineFormResponse
                {
                    VerintCaseReference = "test"
                }
            });

            _ = await _service.CreateCase(_abandonedVehicleReportData);

            _mockVerintServiceGateway.Verify(_ => _.CreateVerintOnlineFormCase(It.IsAny <VerintOnlineFormRequest>()), Times.Once);

            Assert.NotNull(crmCaseParameter);
            Assert.Contains(_abandonedVehicleReportData.AbandonedReason, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.ImageOrVideo, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.ImageOrVideo, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.VehicleColour, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.VehicleMake, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.VehicleModel, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_abandonedVehicleReportData.VehicleRegistration, crmCaseParameter.VerintCase.Description);
        }
Esempio n. 3
0
        public async Task CreateCase_ShouldCallVerintGatewayWithCRMCase()
        {
            VerintOnlineFormRequest crmCaseParameter = null;

            _mockVerintServiceGateway
            .Setup(_ => _.GetStreet(It.IsAny <string>()))
            .ReturnsAsync(new HttpResponse <AddressSearchResult>
            {
                IsSuccessStatusCode = true,
                ResponseContent     = new AddressSearchResult
                {
                    USRN = "test"
                }
            });

            _mockVerintServiceGateway
            .Setup(_ => _.CreateVerintOnlineFormCase(It.IsAny <VerintOnlineFormRequest>()))
            .Callback <VerintOnlineFormRequest>(_ => crmCaseParameter = _)
            .ReturnsAsync(new HttpResponse <VerintOnlineFormResponse>
            {
                IsSuccessStatusCode = true,
                ResponseContent     = new VerintOnlineFormResponse
                {
                    VerintCaseReference = "test"
                }
            });

            _ = await _service.CreateCase(_droppedKerbRequest);

            _mockVerintServiceGateway.Verify(_ => _.CreateVerintOnlineFormCase(It.IsAny <VerintOnlineFormRequest>()), Times.Once);

            Assert.NotNull(crmCaseParameter);
            Assert.Contains(_droppedKerbRequest.KerbLocation, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.KerbLocationOther, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.DischargeReference, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.PlanningPermission, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.AccessFor, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.PropertyOwner, crmCaseParameter.VerintCase.Description);
            Assert.Contains(_droppedKerbRequest.ContactPreference, crmCaseParameter.VerintCase.Description);
        }
Esempio n. 4
0
        public async Task <VerintOnlineFormResponse> CreateVOFCase(VerintOnlineFormRequest model)
        {
            model.VerintCase.CaseReference = await _caseService.Create(model.VerintCase);

            return(await AttachVOF(model));
        }
 public async Task <IActionResult> Attach(VerintOnlineFormRequest model)
 => Ok(await _verintOnlineFormService.AttachVOF(model));
 public async Task <IActionResult> Create(VerintOnlineFormRequest model)
 => Ok(await _verintOnlineFormService.CreateVOFCase(model));
Esempio n. 7
0
 public async Task <HttpResponse <VerintOnlineFormResponse> > AttachVerintOnlineFormToCase(VerintOnlineFormRequest verintOnlineFormRequest)
 => await PostAsync <VerintOnlineFormResponse>($"{VerintOnlineFormEndpoint}/Attach", verintOnlineFormRequest);
Esempio n. 8
0
 public async Task <HttpResponse <VerintOnlineFormResponse> > CreateVerintOnlineFormCase(VerintOnlineFormRequest verintOnlineFormRequest)
 => await PostAsync <VerintOnlineFormResponse>($"{VerintOnlineFormEndpoint}", verintOnlineFormRequest);