コード例 #1
0
        public void ToCase_ShouldMapToCase_WhenMapUsed_PavementJourney()
        {
            // Arrange
            var request = new FloodingRequest
            {
                WhereIsTheFlood = "pavement",
                WhereIsTheFloodingComingFrom = "river",
                WhatDoYouWantToReport        = "flood",
                Map = new Map
                {
                    Lat    = "lat",
                    Lng    = "lng",
                    Street = "street, place, 123456"
                },
                Reporter = new ContactDetails
                {
                    FirstName    = "FirstName",
                    LastName     = "LastName",
                    PhoneNumber  = "PhoneNumber",
                    EmailAddress = "EmailAddress"
                },
                HowWouldYouLikeToBeContacted = "phone",
                IsTheFloodingBlockingTheWholePavementOrCausing = "yes",
                TellUsABoutTheFlood = "It's a flood"
            };

            var streetResult = new FloodingAddress
            {
                UniqueId = "654321",
                USRN     = "123456",
                Name     = "street, place"
            };

            var addressResult = new StockportGovUK.NetStandard.Models.Verint.Address
            {
                USRN        = "123456",
                Reference   = "reference",
                Description = "description"
            };

            var expectedDescription =
                "Where is the flood coming from: river\r\nWhere is the flood: On a pavement\r\nBlocking the pavement: yes\r\nTell us about the flood: It's a flood\r\nHow would you like to be contacted: phone\r\n";

            // Act
            var result = request.ToCase(_floodingPavementConfiguration, streetResult, _pavementFloodingLocationConfiguration);

            // Assert
            Assert.Equal(2002592, result.EventCode);
            Assert.Equal(_floodingPavementConfiguration.VerintOption.Classification, result.Classification);
            Assert.Equal(_floodingPavementConfiguration.VerintOption.EventTitle, result.EventTitle);
            Assert.Equal(streetResult.Name, result.Street.Description);
            Assert.Equal(streetResult.USRN, result.Street.USRN);
            Assert.Equal(streetResult.UniqueId, result.Street.Reference);
            Assert.Equal(expectedDescription, result.Description);
        }
コード例 #2
0
        public void ToCase_ShouldMapToCase_WhenMapNotUsed()
        {
            // Arrange
            var request = new FloodingRequest
            {
                WhereIsTheFlood = "home",
                WhereIsTheFloodingComingFrom = "river",
                WhatDoYouWantToReport        = "flood",
                Reporter = new ContactDetails
                {
                    FirstName    = "FirstName",
                    LastName     = "LastName",
                    PhoneNumber  = "PhoneNumber",
                    EmailAddress = "EmailAddress",
                    Address      = new StockportGovUK.NetStandard.Models.Addresses.Address
                    {
                        PlaceRef        = "123456",
                        SelectedAddress = "SelectedAddress"
                    }
                },
                HowWouldYouLikeToBeContacted = "phone",
                TellUsABoutTheFlood          = "It's a flood"
            };

            var streetResult = new FloodingAddress
            {
                USRN     = "123456",
                UniqueId = "reference",
                Name     = "description"
            };

            var expectedDescription =
                "Where is the flood coming from: river\r\nWhere is the flood: In a home\r\nTell us about the flood: It's a flood\r\nHow would you like to be contacted: phone\r\n";

            // Act
            var result = request.ToCase(_floodingHomeConfiguration, streetResult, null);

            // Assert
            Assert.Equal(2009484, result.EventCode);
            Assert.Equal(_floodingHomeConfiguration.VerintOption.Classification, result.Classification);
            Assert.Equal(_floodingHomeConfiguration.VerintOption.EventTitle, result.EventTitle);
            Assert.Equal(request.Reporter.Address.SelectedAddress, result.Street.Description);
            Assert.Equal(request.Reporter.Address.PlaceRef, result.Street.USRN);
            Assert.Equal(expectedDescription, result.Description);
        }
コード例 #3
0
        public static Case ToCase(
            this FloodingRequest floodingRequest,
            FloodingConfiguration floodingConfiguration,
            FloodingAddress streetResult,
            Config floodingLocationConfig
            )
        {
            var crmCase = new Case
            {
                EventCode      = floodingConfiguration.VerintOption.EventCode,
                Classification = floodingConfiguration.VerintOption.Classification,
                EventTitle     = floodingConfiguration.VerintOption.EventTitle,
                Customer       = new Customer
                {
                    Forename  = floodingRequest.Reporter.FirstName,
                    Surname   = floodingRequest.Reporter.LastName,
                    Email     = floodingRequest.Reporter.EmailAddress,
                    Telephone = floodingRequest.Reporter.PhoneNumber
                },
                Description       = DescriptionBuilder(floodingRequest),
                RaisedByBehaviour = RaisedByBehaviourEnum.Individual,
            };

            if (floodingRequest.DidNotUseMap)
            {
                crmCase.AssociatedWithBehaviour = AssociatedWithBehaviourEnum.Street;
                crmCase.Street = new Street
                {
                    USRN        = streetResult.USRN,
                    Reference   = streetResult.UniqueId,
                    Description = floodingRequest.Reporter.Address.SelectedAddress
                };

                crmCase.FurtherLocationInformation = floodingRequest.Reporter.Address.SelectedAddress;
            }
            else
            {
                if (string.IsNullOrEmpty(floodingRequest.Map.Street))
                {
                    crmCase.Street = new Street
                    {
                        USRN        = ConfirmConstants.USRN,
                        Description = ConfirmConstants.Description,
                        Reference   = ConfirmConstants.USRN
                    };
                }
                else
                {
                    crmCase.AssociatedWithBehaviour = AssociatedWithBehaviourEnum.Street;
                    crmCase.Street = new Street
                    {
                        USRN        = streetResult.USRN,
                        Description = streetResult.Name,
                        Reference   = string.IsNullOrEmpty(streetResult.UniqueId) ? null : streetResult.UniqueId
                    };
                }

                crmCase.FurtherLocationInformation = floodingLocationConfig.Value;
            }

            return(crmCase);
        }