Example #1
0
        public void GeometryPolygonsIntersectionAndDisjointAnother()
        {
            var query       = @"
select value 
	g.c32_geometry
from 
	ArubaContext.AllTypes as g 
where 
	Edm.SpatialDisjoint(
		GeometryFromText(""POLYGON ((13 22, 12 22, 12 23, 13 22))"", 32768),
		Edm.SpatialIntersection(
			g.c32_geometry,
			GeometryFromText(""MULTILINESTRING ((12 22, 15 22, 15 25, 12 25, 12 22), (13 23, 14 23, 14 24, 13 24, 13 23))"", 32768)
		)
	)"    ;
            var polygon     = DbGeometry.PolygonFromText("POLYGON ((13 22, 12 22, 12 23, 13 22))", 32768);
            var multiString =
                DbGeometry.MultiLineFromText(
                    "MULTILINESTRING ((12 22, 15 22, 15 25, 12 25, 12 22), (13 23, 14 23, 14 24, 13 24, 13 23))", 32768);


            // verifying that the results that are returned, when intersected with the given lineStrings are disjoint from the
            // specified polygon as stated in the query
            using (var db = new ArubaContext())
                using (var reader = QueryTestHelpers.EntityCommandSetup(db, query, "STDisjoint"))
                {
                    VerifyValueCondition(reader, o =>
                    {
                        var g = (DbGeometry)o;
                        return(DbSpatialServices.Default.Disjoint(polygon, DbSpatialServices.Default.Intersection(g, multiString)));
                    });
                }
        }
        public ActionResult GetBoundsResult(string bbox)
        {
            var boundingbox    = DbGeometry.PolygonFromText(bbox, 4326);
            var boundedStands  = _db.zimstands.Where(s => s.geom.Intersects(boundingbox).Equals(true));
            var polygonFeature = new List <Feature>();

            if (boundedStands != null)
            {
                foreach (var results in boundedStands)
                {
                    if (results.geom != null)
                    {
                        SqlGeometry geomCol     = SqlGeometry.Parse(new SqlString(results.geom.AsText())).MakeValid();
                        var         geojsongeom = geomCol.ToGeoJSONGeometry();
                        var         properties  = new Dictionary <string, object>
                        {
                            { "standid", results.standid },
                            { "standtype", results.townshipid }
                        };
                        var feature = new Feature(geojsongeom, properties);
                        polygonFeature.Add(feature);
                    }
                }
            }
            return(Json(polygonFeature, JsonRequestBehavior.AllowGet));
        }
        public void GeometryPointsIntersectWithBufferOfPolygon()
        {
            var query   = @"
select value 
	g.c32_geometry
from 
	ArubaContext.AllTypes as g 
where 
	Edm.SpatialIntersects(
		GeometryFromText(""POLYGON ((11 20, 10 20, 10 21, 11 20))"", 32768),
		Edm.SpatialBuffer(g.c32_geometry, 5)
	)"    ;
            var polygon = DbGeometry.PolygonFromText("POLYGON ((11 20, 10 20, 10 21, 11 20))", 32768);

            // verifying that the results returned intersect the buffer (5)
            using (var db = new ArubaContext())
                using (var reader = QueryTestHelpers.EntityCommandSetup(db, query, "STIntersects"))
                {
                    VerifyValueCondition(reader, o =>
                    {
                        var g = (DbGeometry)o;
                        return(DbSpatialServices.Default.Intersects(polygon, DbSpatialServices.Default.Buffer(g, 5)));
                    });
                }
        }
Example #4
0
        public static DbGeometry FromWkt(string type, string wkt, int systemid)
        {
            type = type.ToUpper();
            switch (type)
            {
            case "POINT":
                return(DbGeometry.PointFromText(wkt, systemid));

            case "POLYGON":
                return(DbGeometry.PolygonFromText(wkt, systemid));

            case "LINE":
                return(DbGeometry.LineFromText(wkt, systemid));

            case "MULTIPOINT":
                return(DbGeometry.MultiPointFromText(wkt, systemid));

            case "MULTIPOLYGON":
                return(DbGeometry.MultiPolygonFromText(wkt, systemid));

            case "MULTILINE":
                return(DbGeometry.MultiLineFromText(wkt, systemid));

            default:
                return(null);
            }
        }
        public ActionResult GetBoundedProperties()
        {
            //TODO: Bounds:29.804491996765133 -19.46889855721073,29.829189777374268 -19.46889855721073,29.829189777374268 -19.449900744498997, 29.804491996765133 -19.449900744498997, 29.804491996765133 -19.46889855721073
            var boundingbox    = DbGeometry.PolygonFromText("POLYGON((29.749603271484375 -19.436323734711568,29.735355377197266 -19.45153962115835,29.762306213378906 -19.48390909855208,29.78427886962891 -19.469181787843308,29.749603271484375 -19.436323734711568))", 4326);
            var boundedStands  = _db.zimstands.Where(s => s.geom.Intersects(boundingbox).Equals(true));
            var polygonFeature = new List <Feature>();

            if (boundedStands != null)
            {
                foreach (var results in boundedStands)
                {
                    if (results.geom != null)
                    {
                        SqlGeometry geomCol     = SqlGeometry.Parse(new SqlString(results.geom.AsText())).MakeValid();
                        var         geojsongeom = geomCol.ToGeoJSONGeometry();
                        var         properties  = new Dictionary <string, object>
                        {
                            { "standid", results.standid },
                            { "standtype", results.townshipid }
                        };
                        var feature = new Feature(geojsongeom, properties);
                        polygonFeature.Add(feature);
                    }
                }
            }
            return(Json(polygonFeature, JsonRequestBehavior.AllowGet));
        }
Example #6
0
        public void Test_GetDeliveryPointsCrossingOperationalObject()
        {
            var coordinates  = "POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))";
            var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700);
            var result       = testCandidate.GetDeliveryPointsCrossingOperationalObject(coordinates, unitBoundary);

            Assert.IsNotNull(result);
        }
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        JObject location = JObject.Load(reader);
        JToken  token    = location["Geometry"]["WellKnownText"];
        string  value    = token.ToString();

        DbGeometry converted = DbGeometry.PolygonFromText(value, 2193);

        return(converted);
    }
        public ActionResult GetBoundsFinance(string bbox)
        {
            var boundingbox    = DbGeometry.PolygonFromText(bbox, 4326);
            var boundedStands  = _db.vwAccountsMkobaMatches.Where(s => s.geom.Intersects(boundingbox).Equals(true));
            var polygonFeature = new List <Feature>();

            if (boundedStands != null)
            {
                foreach (var results in boundedStands)
                {
                    if (results.geom != null)
                    {
                        SqlGeometry geomCol     = SqlGeometry.Parse(new SqlString(results.geom.AsText())).MakeValid();
                        var         geojsongeom = geomCol.ToGeoJSONGeometry();
                        var         properties  = new Dictionary <string, object>
                        {
                            { "account", results.Account },
                            { "currentpayment", results.CurrentPayment },
                            { "totalamntdue", results.TOTAL },
                            { "dept", results.Dept },
                            { "conscode", results.Cons_Code },
                            { "active", results.Active },
                            { "name", results.Name },
                            { "township", results.TOWNSHIPID },
                            { "standid", results.STANDID },
                            { "meternumber", results.METER_NUMBER },
                            { "reading", results.READING },
                            { "condition", results.CONDITION },
                            { "residents", results.RESIDENTS },
                            { "watersource", results.WATER_SOURCE },
                            { "illegalconnection", results.ILLEGAL_CONNECTION_ },
                            { "burstpipe", results.BURST_PIPES__ },
                            { "toiletseats", results.TOILET_SEATS_ }
                        };
                        var feature = new Feature(geojsongeom, properties);
                        polygonFeature.Add(feature);
                    }
                }
            }
            return(Json(polygonFeature, JsonRequestBehavior.AllowGet));
        }
Example #9
0
        private DbGeometry CreateGroupBoundary(List <List <double[]> > coordinates)
        {
            string coordinate = string.Empty;

            foreach (var coord in coordinates)
            {
                foreach (var co in coord)
                {
                    if (string.IsNullOrEmpty(coordinate))
                    {
                        coordinate += co[0].ToString() + " " + co[1].ToString();
                    }
                    else
                    {
                        coordinate += ", " + co[0].ToString() + " " + co[1].ToString();
                    }
                }
            }

            return(DbGeometry.PolygonFromText(string.Format(DeliveryPointGroupConstants.PolygonWellKnownText, coordinate), DeliveryPointGroupConstants.BNGCOORDINATESYSTEM));
        }
Example #10
0
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
            loggingHelperMock = CreateMock <ILoggingHelper>();

            unit1Guid = Guid.NewGuid();
            unit2Guid = Guid.NewGuid();
            unit3Guid = Guid.NewGuid();
            user1Id   = System.Guid.NewGuid();
            user2Id   = System.Guid.NewGuid();
            var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700);

            accessLinkLine = DbGeometry.LineFromText("LINESTRING (488938 197021, 488929.9088937093 197036.37310195228)", 27700);

            var streetNames = new List <StreetName>()
            {
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad1", DesignatedName = "XYZ1", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad2", DesignatedName = "XYZ2", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad3", DesignatedName = "XYZ3", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad4", DesignatedName = "XYZ4", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad5", DesignatedName = "XYZ5", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad6", DesignatedName = "XYZ6", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad7", DesignatedName = "XYZ7", Geometry = unitBoundary
                }
            };

            var unitLocation = new List <UnitLocation>()
            {
                new UnitLocation()
                {
                    UnitName = "unit1", ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit1Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit2", ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit2Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit3", ExternalId = "extunit2", ID = unit3Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit3Guid, User_GUID = user2Id
                        }
                    }
                }
            };

            var networkLink = new List <NetworkLink>()
            {
                new NetworkLink()
                {
                    LinkGeometry = accessLinkLine
                }
            };

            var mockAsynEnumerable           = new DbAsyncEnumerable <StreetName>(streetNames);
            var mockStreetNetworkDataService = MockDbSet(streetNames);

            mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable.AsQueryable().Provider);
            mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable.AsQueryable().Expression);
            mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable.AsQueryable().ElementType);
            mockStreetNetworkDataService.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <StreetName>)mockAsynEnumerable).GetAsyncEnumerator());
            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <StreetName>()).Returns(mockStreetNetworkDataService.Object);
            mockRMDBContext.Setup(x => x.StreetNames).Returns(mockStreetNetworkDataService.Object);

            var mockAsynEnumerable2           = new DbAsyncEnumerable <UnitLocation>(unitLocation);
            var mockStreetNetworkDataService2 = MockDbSet(unitLocation);

            mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable2.AsQueryable().Provider);
            mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable2.AsQueryable().Expression);
            mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable2.AsQueryable().ElementType);
            mockStreetNetworkDataService2.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <UnitLocation>)mockAsynEnumerable2).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <UnitLocation>()).Returns(mockStreetNetworkDataService2.Object);
            mockRMDBContext.Setup(x => x.UnitLocations).Returns(mockStreetNetworkDataService2.Object);

            var mockAsynEnumerable3 = new DbAsyncEnumerable <NetworkLink>(networkLink);
            var mockNetworkLink     = MockDbSet(networkLink);

            mockNetworkLink.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider);
            mockNetworkLink.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression);
            mockNetworkLink.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType);
            mockNetworkLink.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <NetworkLink>)mockAsynEnumerable3).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object);
            mockRMDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object);
            mockRMDBContext.Setup(x => x.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new StreetNetworkDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
Example #11
0
                private static Dictionary <MethodInfo, string> GetRenamedMethodFunctions()
                {
                    var result = new Dictionary <MethodInfo, string>();

                    result.Add(GetStaticMethod(() => DbGeography.FromText(default(string))), "GeographyFromText");
                    result.Add(GetStaticMethod(() => DbGeography.FromText(default(string), default(int))), "GeographyFromText");
                    result.Add(GetStaticMethod(() => DbGeography.PointFromText(default(string), default(int))), "GeographyPointFromText");
                    result.Add(GetStaticMethod(() => DbGeography.LineFromText(default(string), default(int))), "GeographyLineFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeography.PolygonFromText(default(string), default(int))), "GeographyPolygonFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiPointFromText(default(string), default(int))), "GeographyMultiPointFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiLineFromText(default(string), default(int))), "GeographyMultiLineFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiPolygonFromText(default(string), default(int))),
                        "GeographyMultiPolygonFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeography.GeographyCollectionFromText(default(string), default(int))),
                        "GeographyCollectionFromText");
                    result.Add(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]), default(int))), "GeographyFromBinary");
                    result.Add(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]))), "GeographyFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.PointFromBinary(default(byte[]), default(int))), "GeographyPointFromBinary");
                    result.Add(GetStaticMethod(() => DbGeography.LineFromBinary(default(byte[]), default(int))), "GeographyLineFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.PolygonFromBinary(default(byte[]), default(int))), "GeographyPolygonFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiPointFromBinary(default(byte[]), default(int))),
                        "GeographyMultiPointFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiLineFromBinary(default(byte[]), default(int))),
                        "GeographyMultiLineFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.MultiPolygonFromBinary(default(byte[]), default(int))),
                        "GeographyMultiPolygonFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeography.GeographyCollectionFromBinary(default(byte[]), default(int))),
                        "GeographyCollectionFromBinary");
                    result.Add(GetStaticMethod(() => DbGeography.FromGml(default(string))), "GeographyFromGml");
                    result.Add(GetStaticMethod(() => DbGeography.FromGml(default(string), default(int))), "GeographyFromGml");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.AsBinary()), "AsBinary");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.AsGml()), "AsGml");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.AsText()), "AsText");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.SpatialEquals(default(DbGeography))), "SpatialEquals");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Disjoint(default(DbGeography))), "SpatialDisjoint");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Intersects(default(DbGeography))), "SpatialIntersects");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Buffer(default(double))), "SpatialBuffer");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Distance(default(DbGeography))), "Distance");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Intersection(default(DbGeography))), "SpatialIntersection");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Union(default(DbGeography))), "SpatialUnion");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.Difference(default(DbGeography))), "SpatialDifference");
                    result.Add(
                        GetInstanceMethod((DbGeography geo) => geo.SymmetricDifference(default(DbGeography))), "SpatialSymmetricDifference");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.ElementAt(default(int))), "SpatialElementAt");
                    result.Add(GetInstanceMethod((DbGeography geo) => geo.PointAt(default(int))), "PointAt");
                    result.Add(GetStaticMethod(() => DbGeometry.FromText(default(string))), "GeometryFromText");
                    result.Add(GetStaticMethod(() => DbGeometry.FromText(default(string), default(int))), "GeometryFromText");
                    result.Add(GetStaticMethod(() => DbGeometry.PointFromText(default(string), default(int))), "GeometryPointFromText");
                    result.Add(GetStaticMethod(() => DbGeometry.LineFromText(default(string), default(int))), "GeometryLineFromText");
                    result.Add(GetStaticMethod(() => DbGeometry.PolygonFromText(default(string), default(int))), "GeometryPolygonFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiPointFromText(default(string), default(int))), "GeometryMultiPointFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiLineFromText(default(string), default(int))), "GeometryMultiLineFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiPolygonFromText(default(string), default(int))),
                        "GeometryMultiPolygonFromText");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.GeometryCollectionFromText(default(string), default(int))),
                        "GeometryCollectionFromText");
                    result.Add(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]))), "GeometryFromBinary");
                    result.Add(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]), default(int))), "GeometryFromBinary");
                    result.Add(GetStaticMethod(() => DbGeometry.PointFromBinary(default(byte[]), default(int))), "GeometryPointFromBinary");
                    result.Add(GetStaticMethod(() => DbGeometry.LineFromBinary(default(byte[]), default(int))), "GeometryLineFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.PolygonFromBinary(default(byte[]), default(int))), "GeometryPolygonFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiPointFromBinary(default(byte[]), default(int))),
                        "GeometryMultiPointFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiLineFromBinary(default(byte[]), default(int))), "GeometryMultiLineFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.MultiPolygonFromBinary(default(byte[]), default(int))),
                        "GeometryMultiPolygonFromBinary");
                    result.Add(
                        GetStaticMethod(() => DbGeometry.GeometryCollectionFromBinary(default(byte[]), default(int))),
                        "GeometryCollectionFromBinary");
                    result.Add(GetStaticMethod(() => DbGeometry.FromGml(default(string))), "GeometryFromGml");
                    result.Add(GetStaticMethod(() => DbGeometry.FromGml(default(string), default(int))), "GeometryFromGml");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsBinary()), "AsBinary");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsGml()), "AsGml");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsText()), "AsText");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.SpatialEquals(default(DbGeometry))), "SpatialEquals");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Disjoint(default(DbGeometry))), "SpatialDisjoint");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Intersects(default(DbGeometry))), "SpatialIntersects");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Touches(default(DbGeometry))), "SpatialTouches");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Crosses(default(DbGeometry))), "SpatialCrosses");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Within(default(DbGeometry))), "SpatialWithin");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Contains(default(DbGeometry))), "SpatialContains");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Overlaps(default(DbGeometry))), "SpatialOverlaps");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Relate(default(DbGeometry), default(string))), "SpatialRelate");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Buffer(default(double))), "SpatialBuffer");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Distance(default(DbGeometry))), "Distance");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Intersection(default(DbGeometry))), "SpatialIntersection");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Union(default(DbGeometry))), "SpatialUnion");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.Difference(default(DbGeometry))), "SpatialDifference");
                    result.Add(
                        GetInstanceMethod((DbGeometry geo) => geo.SymmetricDifference(default(DbGeometry))), "SpatialSymmetricDifference");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.ElementAt(default(int))), "SpatialElementAt");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.PointAt(default(int))), "PointAt");
                    result.Add(GetInstanceMethod((DbGeometry geo) => geo.InteriorRingAt(default(int))), "InteriorRingAt");
                    return(result);
                }
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
            loggingHelperMock = CreateMock <ILoggingHelper>();

            unit1Guid     = Guid.NewGuid();
            unit2Guid     = Guid.NewGuid();
            unit3Guid     = Guid.NewGuid();
            user1Id       = Guid.NewGuid();
            user2Id       = Guid.NewGuid();
            sectorGuid    = Guid.NewGuid();
            districtGuid  = Guid.NewGuid();
            areaGuid      = Guid.NewGuid();
            postcodeGuid2 = Guid.NewGuid();
            postcodeGuid1 = Guid.NewGuid();

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700);

            var userRoleUnits = new List <UserRoleUnit>()
            {
                new UserRoleUnit {
                    Unit_GUID = unit1Guid, User_GUID = user1Id
                },
                new UserRoleUnit {
                    Unit_GUID = unit2Guid, User_GUID = user1Id
                },
                new UserRoleUnit {
                    Unit_GUID = unit3Guid, User_GUID = user2Id
                }
            };

            var unitLocation = new List <UnitLocation>()
            {
                new UnitLocation()
                {
                    UnitName = "unit1", UnitAddressUDPRN = 1, ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary
                },
                new UnitLocation()
                {
                    UnitName = "unit2", UnitAddressUDPRN = 2, ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary
                },
                new UnitLocation()
                {
                    UnitName = "unit3", UnitAddressUDPRN = 3, ExternalId = "extunit3", ID = unit3Guid, UnitBoundryPolygon = unitBoundary
                }
            };

            var mockDeliveryUnitLocationDbSet = MockDbSet(unitLocation);

            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <UnitLocation>()).Returns(mockDeliveryUnitLocationDbSet.Object);
            mockRMDBContext.Setup(x => x.UnitLocations).Returns(mockDeliveryUnitLocationDbSet.Object);
            mockRMDBContext.Setup(x => x.UnitLocations.AsNoTracking()).Returns(mockDeliveryUnitLocationDbSet.Object);

            mockDeliveryUnitLocationDbSet.Setup(x => x.Include(It.IsAny <string>())).Returns(mockDeliveryUnitLocationDbSet.Object);

            var postalAddresses = new List <PostalAddress>()
            {
                new PostalAddress()
                {
                    UDPRN = 1, PostCodeGUID = postcodeGuid1
                },
                new PostalAddress()
                {
                    UDPRN = 2, PostCodeGUID = postcodeGuid2
                },
                new PostalAddress()
                {
                    UDPRN = 3, PostCodeGUID = postcodeGuid2
                }
            };
            var mockPostalAddressesDbSet = MockDbSet(postalAddresses);

            mockRMDBContext.Setup(x => x.Set <PostalAddress>()).Returns(mockPostalAddressesDbSet.Object);
            mockRMDBContext.Setup(x => x.PostalAddresses).Returns(mockPostalAddressesDbSet.Object);
            mockRMDBContext.Setup(x => x.PostalAddresses.AsNoTracking()).Returns(mockPostalAddressesDbSet.Object);

            var postcodes = new List <Postcode>()
            {
                new Postcode()
                {
                    ID = postcodeGuid1, SectorGUID = sectorGuid
                },
                new Postcode()
                {
                    ID = postcodeGuid2, SectorGUID = sectorGuid
                }
            };
            var mockPostCodesDbSet = MockDbSet(postcodes);

            mockRMDBContext.Setup(x => x.Set <Postcode>()).Returns(mockPostCodesDbSet.Object);
            mockRMDBContext.Setup(x => x.Postcodes).Returns(mockPostCodesDbSet.Object);
            mockRMDBContext.Setup(x => x.Postcodes.AsNoTracking()).Returns(mockPostCodesDbSet.Object);

            var postcodeSectors = new List <PostcodeSector>()
            {
                new PostcodeSector()
                {
                    ID = sectorGuid, DistrictGUID = districtGuid
                }
            };
            var mockPostcodeSectorDbSet = MockDbSet(postcodeSectors);

            mockRMDBContext.Setup(x => x.Set <PostcodeSector>()).Returns(mockPostcodeSectorDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeSectors).Returns(mockPostcodeSectorDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeSectors.AsNoTracking()).Returns(mockPostcodeSectorDbSet.Object);

            var postcodeDistricts = new List <PostcodeDistrict>()
            {
                new PostcodeDistrict()
                {
                    ID = districtGuid, AreaGUID = areaGuid
                }
            };
            var mockPostcodeDistrictDbSet = MockDbSet(postcodeDistricts);

            mockRMDBContext.Setup(x => x.Set <PostcodeDistrict>()).Returns(mockPostcodeDistrictDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeDistricts).Returns(mockPostcodeDistrictDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeDistricts.AsNoTracking()).Returns(mockPostcodeDistrictDbSet.Object);

            var postcodeAreas = new List <PostcodeArea>()
            {
                new PostcodeArea()
                {
                    ID = areaGuid, Area = "Test Area"
                }
            };
            var mockPostcodeAreasDbSet = MockDbSet(postcodeAreas);

            mockRMDBContext.Setup(x => x.Set <PostcodeArea>()).Returns(mockPostcodeAreasDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeAreas).Returns(mockPostcodeAreasDbSet.Object);
            mockRMDBContext.Setup(x => x.PostcodeAreas.AsNoTracking()).Returns(mockPostcodeAreasDbSet.Object);

            var mockUserRoleUnitDbSet = MockDbSet(userRoleUnits);

            mockRMDBContext.Setup(x => x.Set <UserRoleUnit>()).Returns(mockUserRoleUnitDbSet.Object);
            mockRMDBContext.Setup(x => x.UserRoleUnits).Returns(mockUserRoleUnitDbSet.Object);
            mockRMDBContext.Setup(x => x.UserRoleUnits.AsNoTracking()).Returns(mockUserRoleUnitDbSet.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new UnitLocationDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
        /// <summary>
        /// Data and Methods setup required to run test methods
        /// </summary>
        protected override void OnSetup()
        {
            // Data setup
            unit1Guid                = new Guid("8534AA41-391F-4579-A18D-D7EDF5B5F918");
            currentUserUnitType      = "Delivery Office";
            mockIConfigurationHelper = CreateMock <IConfigurationHelper>();

            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700);

            accessLinkLine = DbGeometry.LineFromText("LINESTRING (488938 197021, 488929.9088937093 197036.37310195228)", 27700);
            point          = DbGeometry.PointFromText("POINT (488938 197021)", 27700);

            var streetNamesList = new List <StreetName>()
            {
                new StreetName()
                {
                    ID = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad1", DesignatedName = "XYZ1", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8234AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad2", DesignatedName = "XYZ2", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8334AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad3", DesignatedName = "XYZ3", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8434AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad4", DesignatedName = "XYZ4", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8534AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad5", DesignatedName = "XYZ5", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8634AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad6", DesignatedName = "XYZ6", Geometry = unitBoundary
                },
                new StreetName()
                {
                    ID = new Guid("8734AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad7", DesignatedName = "XYZ7", Geometry = unitBoundary
                }
            };

            var networkLinkList = new List <NetworkLink>()
            {
                new NetworkLink()
                {
                    LinkGeometry        = accessLinkLine,
                    StreetNameGUID      = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F918"),
                    NetworkLinkTypeGUID = Guid.Empty,
                    ID = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F911")
                }
            };

            List <Location> locationList = new List <Location>()
            {
                new Location()
                {
                    ID    = unit1Guid,
                    Shape = unitBoundary
                }
            };

            referenceDataCategoryList = new List <ReferenceDataCategoryDTO>()
            {
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.NetworkLinkType,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataValue = ReferenceDataValues.NetworkLinkPathLink
                        }
                    },
                    Id = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918")
                },

                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.NetworkLinkType,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataValue = ReferenceDataValues.NetworkLinkRoadLink
                        }
                    },
                    Id = new Guid("2534AA41-391F-4579-A18D-D7EDF5B5F918")
                },

                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkParameters,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = ReferenceDataValues.AccessLinkDiffRoadMaxDistance,
                            ReferenceDataValue = "5"
                        }
                    },
                    Id = new Guid("3534AA41-391F-4579-A18D-D7EDF5B5F918")
                }
            };

            mockNetworkDBContext = CreateMock <NetworkDBContext>();
            mockILoggingHelper   = CreateMock <ILoggingHelper>();

            // Setup for StreetName
            var mockAsynEnumerable = new DbAsyncEnumerable <StreetName>(streetNamesList);
            var mockStreetName     = MockDbSet(streetNamesList);

            mockStreetName.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable.AsQueryable().Provider);
            mockStreetName.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable.AsQueryable().Expression);
            mockStreetName.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable.AsQueryable().ElementType);
            mockStreetName.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <StreetName>)mockAsynEnumerable).GetAsyncEnumerator());
            mockNetworkDBContext.Setup(x => x.Set <StreetName>()).Returns(mockStreetName.Object);
            mockNetworkDBContext.Setup(x => x.StreetNames).Returns(mockStreetName.Object);
            mockStreetName.Setup(x => x.AsNoTracking()).Returns(mockStreetName.Object);

            // Setup for Location
            var mockAsynEnumerable1 = new DbAsyncEnumerable <Location>(locationList);
            var mockLocation        = MockDbSet(locationList);

            mockLocation.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable1.AsQueryable().Provider);
            mockLocation.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable1.AsQueryable().Expression);
            mockLocation.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable1.AsQueryable().ElementType);
            mockLocation.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Location>)mockAsynEnumerable1).GetAsyncEnumerator());
            mockNetworkDBContext.Setup(x => x.Set <Location>()).Returns(mockLocation.Object);
            mockNetworkDBContext.Setup(x => x.Locations).Returns(mockLocation.Object);
            mockLocation.Setup(x => x.AsNoTracking()).Returns(mockLocation.Object);

            // Setup for NetworkLink
            var mockAsynEnumerable3 = new DbAsyncEnumerable <NetworkLink>(networkLinkList);
            var mockNetworkLink     = MockDbSet(networkLinkList);

            mockNetworkLink.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider);
            mockNetworkLink.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression);
            mockNetworkLink.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType);
            mockNetworkLink.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <NetworkLink>)mockAsynEnumerable3).GetAsyncEnumerator());
            mockNetworkDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object);
            mockNetworkDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object);
            mockNetworkDBContext.Setup(x => x.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object);

            // Mock trace manager
            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            mockILoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            mockIConfigurationHelper.Setup(x => x.ReadAppSettingsConfigurationValues(It.IsAny <string>())).Returns("5");
            mockDatabaseFactory = CreateMock <IDatabaseFactory <NetworkDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockNetworkDBContext.Object);
            testCandidate = new StreetNetworkDataService(mockDatabaseFactory.Object, mockILoggingHelper.Object, mockIConfigurationHelper.Object);
        }
        /// <summary>
        /// Setup for Nunit Tests.
        /// </summary>
        protected override void OnSetup()
        {
            mockLoggingHelper = CreateMock <ILoggingHelper>();
            unit1Guid         = Guid.NewGuid();
            unit2Guid         = Guid.NewGuid();
            unit3Guid         = Guid.NewGuid();
            user1Id           = System.Guid.NewGuid();
            user2Id           = System.Guid.NewGuid();

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON((511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933))", 27700);
            var location     = new List <Location>()
            {
                new Location()
                {
                    ID = unit1Guid, Shape = unitBoundary
                }
            };
            var networkLinks = new List <NetworkLink>()
            {
                new NetworkLink()
                {
                    LinkGeometry = unitBoundary,
                }
            };
            var networkLink = new NetworkLink()
            {
                LinkGeometry = unitBoundary,
            };
            var accessLink = new List <AccessLink>()
            {
                new AccessLink()
                {
                    ID = Guid.NewGuid(), NetworkLink = networkLink
                }
            };
            var deliveryPoint = new List <DeliveryPoint>()
            {
                new DeliveryPoint()
                {
                    NetworkNode = new NetworkNode()
                    {
                        Location = new Location()
                        {
                            Shape = unitBoundary
                        }
                    }
                }
            };

            var networkNodeDataDTO = new NetworkNodeDataDTO()
            {
                ID       = Guid.NewGuid(),
                Location = new LocationDataDTO()
                {
                    ID                = Guid.NewGuid(),
                    Shape             = unitBoundary,
                    RowCreateDateTime = DateTime.UtcNow
                }
            };

            var accessLinkDataDTOs = new AccessLinkDataDTO()
            {
                Approved               = true,
                ID                     = Guid.NewGuid(),
                WorkloadLengthMeter    = 40,
                LinkDirectionGUID      = Guid.NewGuid(),
                ConnectedNetworkLinkID = Guid.NewGuid(),
                AccessLinkTypeGUID     = Guid.NewGuid()
            };

            var accessLinkStatus = new AccessLinkStatusDataDTO()
            {
                ID                   = Guid.NewGuid(),
                NetworkLinkID        = Guid.NewGuid(),
                AccessLinkStatusGUID = Guid.NewGuid(),
                StartDateTime        = DateTime.UtcNow,
                RowCreateDateTime    = DateTime.UtcNow
            };

            netWorkLinkDataDto = new NetworkLinkDataDTO()
            {
                ID = Guid.NewGuid(),
                DataProviderGUID    = Guid.NewGuid(),
                NetworkLinkTypeGUID = Guid.NewGuid(),
                StartNodeID         = Guid.NewGuid(),
                EndNodeID           = Guid.NewGuid(),
                LinkLength          = 40,
                LinkGeometry        = unitBoundary,
                RowCreateDateTime   = DateTime.UtcNow,
            };

            var mockAsynEnumerable = new DbAsyncEnumerable <AccessLink>(accessLink);

            mockFmoDbContext = CreateMock <AccessLinkDBContext>();
            mockFmoDbContext.Setup(x => x.SaveChanges()).Returns(1);
            var mockAccessLinkDataService = MockDbSet(accessLink);

            mockFmoDbContext.Setup(x => x.Set <AccessLink>()).Returns(mockAccessLinkDataService.Object);
            mockFmoDbContext.Setup(x => x.AccessLinks).Returns(mockAccessLinkDataService.Object);

            // mockFmoDbContext.Setup(c => c.AccessLinks.AsNoTracking()).Returns(mockAccessLinkDataService.Object);
            mockAccessLinkDataService.Setup(x => x.Include(It.IsAny <string>())).Returns(mockAccessLinkDataService.Object);
            mockAccessLinkDataService.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService.Object);

            var mockAccessLinkDataService1 = MockDbSet(networkLinks);

            mockFmoDbContext.Setup(x => x.Set <NetworkLink>()).Returns(mockAccessLinkDataService1.Object);
            mockFmoDbContext.Setup(x => x.NetworkLinks).Returns(mockAccessLinkDataService1.Object);

            // mockFmoDbContext.Setup(c => c.NetworkLinks.AsNoTracking()).Returns(mockAccessLinkDataService1.Object);
            mockAccessLinkDataService1.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService1.Object);

            var mockAccessLinkDataService4 = MockDbSet(deliveryPoint);

            mockFmoDbContext.Setup(x => x.Set <DeliveryPoint>()).Returns(mockAccessLinkDataService4.Object);
            mockFmoDbContext.Setup(x => x.DeliveryPoints).Returns(mockAccessLinkDataService4.Object);
            mockAccessLinkDataService4.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService4.Object);

            var mockAsynEnumerable2        = new DbAsyncEnumerable <Location>(location);
            var mockAccessLinkDataService2 = MockDbSet(location);

            mockFmoDbContext.Setup(x => x.Set <Location>()).Returns(mockAccessLinkDataService2.Object);
            mockFmoDbContext.Setup(x => x.Locations).Returns(mockAccessLinkDataService2.Object);
            mockFmoDbContext.Setup(c => c.Locations.AsNoTracking()).Returns(mockAccessLinkDataService2.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <AccessLinkDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockFmoDbContext.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            mockLoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new AccessLinkDataService(mockDatabaseFactory.Object, mockLoggingHelper.Object);
        }
Example #15
0
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
            loggingHelperMock = CreateMock <ILoggingHelper>();

            unit1Guid = Guid.NewGuid();
            unit2Guid = Guid.NewGuid();
            unit3Guid = Guid.NewGuid();
            user1Id   = System.Guid.NewGuid();
            user2Id   = System.Guid.NewGuid();

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON((511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933))", 27700);

            var unitLocation = new List <UnitLocation>()
            {
                new UnitLocation()
                {
                    UnitName = "unit1", ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit1Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit2", ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit2Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit3", ExternalId = "extunit2", ID = unit3Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit3Guid, User_GUID = user2Id
                        }
                    }
                }
            };

            var roadName = new List <OSRoadLink>()
            {
                new OSRoadLink()
                {
                    CentreLineGeometry = unitBoundary,
                    RoadName           = "Road 001"
                }
            };

            var referenceDatas = new List <ReferenceData>()
            {
                new ReferenceData()
                {
                    ReferenceDataName          = "PAF",
                    DataDescription            = "PAF",
                    ReferenceDataCategory_GUID = new Guid("4A6F8F72-AE47-4EC4-8FCB-EFCFEB900ADD"),
                    ID = new Guid("4A6F8F72-AE47-4EC4-8FCB-EFCFEB900ADD"),
                    ReferenceDataValue = "PAF"
                },

                new ReferenceData()
                {
                    ReferenceDataName          = "PAF",
                    DataDescription            = "PAF",
                    ReferenceDataCategory_GUID = new Guid("4A6F8F73-AE47-4EC4-8FCB-EFCFEB900ADD"),
                    ID = new Guid("4A6F8F73-AE47-4EC4-8FCB-EFCFEB900ADD"),
                    ReferenceDataValue = "NYB"
                }
            };

            var networkLinks = new List <NetworkLink>()
            {
                new NetworkLink()
                {
                    LinkGeometry         = DbGeometry.LineFromText("LINESTRING (512722.70000000019 104752.6799999997, 512722.70000000019 104738)", 27700),
                    NetworkLinkType_GUID = new Guid("4A6F8F72-AE47-4EC4-8FCB-EFCFEB900ADD")
                }
            };

            var mockRoadNameDataService = MockDbSet(roadName);

            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <OSRoadLink>()).Returns(mockRoadNameDataService.Object);
            mockRMDBContext.Setup(x => x.OSRoadLinks).Returns(mockRoadNameDataService.Object);
            mockRMDBContext.Setup(c => c.OSRoadLinks.AsNoTracking()).Returns(mockRoadNameDataService.Object);
            mockRoadNameDataService.Setup(x => x.Include(It.IsAny <string>())).Returns(mockRoadNameDataService.Object);

            var mockRoadNameDataService2 = MockDbSet(unitLocation);

            mockRMDBContext.Setup(x => x.Set <UnitLocation>()).Returns(mockRoadNameDataService2.Object);
            mockRMDBContext.Setup(x => x.UnitLocations).Returns(mockRoadNameDataService2.Object);
            mockRMDBContext.Setup(c => c.UnitLocations.AsNoTracking()).Returns(mockRoadNameDataService2.Object);
            mockRoadNameDataService2.Setup(x => x.Include(It.IsAny <string>())).Returns(mockRoadNameDataService2.Object);

            var mockReferenceData = MockDbSet(referenceDatas);

            mockRMDBContext.Setup(x => x.Set <ReferenceData>()).Returns(mockReferenceData.Object);
            mockRMDBContext.Setup(x => x.ReferenceDatas).Returns(mockReferenceData.Object);
            mockRMDBContext.Setup(c => c.ReferenceDatas.AsNoTracking()).Returns(mockReferenceData.Object);
            mockReferenceData.Setup(x => x.Include(It.IsAny <string>())).Returns(mockReferenceData.Object);

            var mockNetworkLink = MockDbSet(networkLinks);

            mockRMDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object);
            mockRMDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object);
            mockRMDBContext.Setup(c => c.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object);
            mockNetworkLink.Setup(x => x.Include(It.IsAny <string>())).Returns(mockNetworkLink.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new RoadNameDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
Example #16
0
        private static void extractPolygon(JObject feature, Dictionary <string, Point3D> labeledPoints, ApplicationDbContext context
                                           , List <Point3D> badPolygonsPoints, List <POI> poisToSave)
        {
            POI poi = new POI();

            poi.Type = null;
            Polygone toReturn = new Polygone();

            toReturn.Points = new List <Point3D>();
            int level = int.Parse(feature["properties"]["level"].ToString());

            //bool isAccessible = Boolean.Parse(feature["properties"]["accessible"].ToString());
            toReturn.Level = level;
            StringBuilder  wktsb = new StringBuilder("POLYGON ((");
            List <Point3D> labeledPointsFound = new List <Point3D>();

            foreach (JArray j in feature["geometry"]["coordinates"][0])
            {
                StringBuilder pointWkt = new StringBuilder("POINT (");
                string        lon      = Regex.Match(j.ToString(), "34\\.\\d+").Value;
                string        lat      = Regex.Match(j.ToString(), "32\\.\\d+").Value;
                wktsb.Append(lon + " " + lat + ",");
                pointWkt.Append(lon + " " + lat + ")");
                if (!toReturn.Points.Exists(Point3D => Point3D.Wkt == pointWkt.ToString()))
                {
                    if (labeledPoints.ContainsKey(pointWkt.ToString()))
                    {
                        labeledPointsFound.Add(labeledPoints[pointWkt.ToString()]);
                        toReturn.Points.Add(labeledPoints[pointWkt.ToString()]);
                        //break;
                    }
                    else
                    {
                        DbGeometry pointG = DbGeometry.PointFromText(pointWkt.ToString(), 4326);
                        Point3D    point  = new Point3D {
                            Longitude = Decimal.Parse(lon), Latitude = Decimal.Parse(lat), Wkt = pointWkt.ToString(), LocationG = pointG, Level = level
                        };
                        toReturn.Points.Add(point);
                    }
                }
            }
            wktsb.Remove(wktsb.Length - 1, 1);
            wktsb.Append("))");
            toReturn.Wkt = wktsb.ToString();
            try
            {
                DbGeometry polygone = DbGeometry.PolygonFromText(wktsb.ToString(), 4326);
                if (!polygone.IsValid)
                {
                    polygone = DbGeometry.FromText(SqlGeometry.STGeomFromText(new SqlChars(polygone.AsText()), 4326).MakeValid().STAsText().ToSqlString().ToString(), 4326);
                }

                foreach (Point3D point in badPolygonsPoints)
                {
                    if (polygone.Contains(point.LocationG))
                    {
                        return;
                    }
                }
                toReturn.LocationG = polygone;
            }
            catch (Exception ex)
            {
                ex = ex;
            }

            // polygon with no info
            if (labeledPointsFound.Count == 0)
            {
                return;
            }

            // polygon with more than one anchor point - check if it is 2 entrances
            if (labeledPointsFound.Count > 1)
            {
                if (labeledPointsFound[0].Areas.Count != labeledPointsFound[1].Areas.Count)
                {
                    return;
                }
                else
                {
                    for (int i = 0; i < labeledPointsFound[0].Areas.Count; i++)
                    {
                        if (!labeledPointsFound[0].Areas[i].AreaID.Equals(labeledPointsFound[1].Areas[i].AreaID))
                        {
                            return;
                        }
                    }
                }
            }
            Point3D labeledPoint = labeledPointsFound[0];

            if (labeledPoint != null)
            {
                toReturn.Areas = labeledPoint.Areas;
                if (labeledPoint.Areas != null && labeledPoint.Areas.Count > 0 && !labeledPoint.Areas[0].AreaID.StartsWith("9"))
                {
                    poi.Type = POI.POIType.STORE;
                }
                if (labeledPoint.Name.ToLower().Contains("atm"))
                {
                    poi.Type = POI.POIType.ATM;
                }
                if (labeledPoint.Name.ToLower().Contains("entrance"))
                {
                    poi.Type = POI.POIType.ENTRANCE;
                }
                if (labeledPoint.Name.ToLower().Contains("toilet") | labeledPoint.Name.ToLower().Contains("wc"))
                {
                    poi.Type = POI.POIType.WC;
                }
                if (labeledPoint.Name.ToLower().Contains("zone"))
                {
                    poi.Type = POI.POIType.ZONE;
                }
            }
            if (poi.Type != null)
            {
                switch (poi.Type)
                {
                case POI.POIType.STORE:
                {
                    poi = new Store {
                        Type         = poi.Type, Anchor = labeledPoint, Enabled = true
                        , Floor      = level,
                        IsAccessible = labeledPoint.IsAccessible,
                        Name         = labeledPoint.Name,
                        Name2        = labeledPoint.Name2,
                        Location     = toReturn,
                        Entrances    = new List <Point3D>()
                    };
                    foreach (Point3D entrancePoint in labeledPointsFound)
                    {
                        ((Store)poi).Entrances.Add(entrancePoint);
                    }
                    //context.Stores.AddOrUpdate(new Store[] { (Store)poi });
                    break;
                }

                default:
                {
                    poi = new POI
                    {
                        Type     = poi.Type,
                        Anchor   = labeledPoint,
                        Enabled  = true,
                        Name     = labeledPoint.Name,
                        Location = toReturn
                    };
                    //poisToSave.Add(poi);
                    break;
                }
                }
                poisToSave.Add(poi);
            }
            //return poi;
        }
Example #17
0
        private void InsertGolfStore(MallBuddyApi.Models.ApplicationDbContext context)
        {
            try
            {
                var golf = new Store
                {
                    Name           = "GOLF",
                    Type           = POI.POIType.STORE,
                    Anchor         = new Point3D(),
                    Schedule       = new List <Models.existing.OpeningHoursSpan>(),
                    Enabled        = true,
                    WebsiteLink    = "http://www.dizengof-center.co.il/GOLF.aspx",
                    ImageUrl       = "http://www.dizengof-center.co.il/manage-pages/uploaded-files/a_03-07-2011-15-37-5.jpg",
                    Location       = new Polygone(),
                    ContactDetails = new ContactDetails {
                        PoiName = "GOLF", Phone1 = "03-5283163", Address = "www.golf.co.il"
                    },
                    //Category = "Fashion",
                };
                var schedule1 = new List <OpeningHoursSpan>();
                var weekday   = new OpeningHoursSpan {
                    day = DayOfWeek.Sunday, from = 10, to = 2130
                };
                var friday = new OpeningHoursSpan {
                    day = DayOfWeek.Friday, from = 0930, to = 1530
                };
                var saturday = new OpeningHoursSpan {
                    day = DayOfWeek.Saturday, from = 20, to = 2230
                };
                schedule1.Add(weekday); schedule1.Add(friday); schedule1.Add(saturday);
                golf.Schedule = schedule1;

                Polygone poly = new Polygone
                {
                    Accessible = true,
                    Areas      = new List <Area> {
                        new Area {
                            AreaID = "0401"
                        }, new Area {
                            AreaID = "0401A"
                        }
                    },
                    Wkt       = "POLYGON ((34.775053932498516 32.07540339193275,34.77499915806167 32.07548404017222,34.77497984348338 32.07549149508553, 34.774953825764996 32.07549049106811,34.774935077805786 32.07547970303128,34.77491144862596 32.07545506831342,34.77490455271353 32.07544820193738, 34.77489280495869 32.075426482513976, 34.774889877466975 32.07541821355505,34.774886213457535 32.07540786423455,34.77488379926684 32.075401045136886,34.774871958289275 32.07534718017001,34.77487191400818 32.0752896316811,34.77492920795574 32.075324825765655,34.775053932498516 32.07540339193275,34.775053932498516 32.07540339193275))",
                    LocationG = DbGeometry.PolygonFromText("POLYGON ((34.775053932498516 32.07540339193275,34.77499915806167 32.07548404017222,34.77497984348338 32.07549149508553, 34.774953825764996 32.07549049106811,34.774935077805786 32.07547970303128,34.77491144862596 32.07545506831342,34.77490455271353 32.07544820193738, 34.77489280495869 32.075426482513976, 34.774889877466975 32.07541821355505,34.774886213457535 32.07540786423455,34.77488379926684 32.075401045136886,34.774871958289275 32.07534718017001,34.77487191400818 32.0752896316811,34.77492920795574 32.075324825765655,34.775053932498516 32.07540339193275,34.775053932498516 32.07540339193275))", 4326),
                    Points    = new List <Point3D>()
                };
                var Point3D1 = new Point3D {
                    Level = 2, Longitude = 34.775053932498516m, Latitude = 32.07540339193275m, Wkt = "POINT(34.775053932498516 32.07540339193275)", LocationG = DbGeometry.PointFromText("POINT(34.775053932498516 32.07540339193275)", 4326)
                };
                var Point3D2 = new Point3D {
                    Level = 2, Longitude = 34.77499915806167m, Latitude = 32.07548404017222m, Wkt = "POINT(34.77499915806167 32.07548404017222)", LocationG = DbGeometry.PointFromText("POINT(34.77499915806167 32.07548404017222)", 4326)
                };
                var Point3D3 = new Point3D {
                    Level = 2, Longitude = 34.77497984348338m, Latitude = 32.07549149508553m, Wkt = "POINT(34.77497984348338 32.07549149508553)", LocationG = DbGeometry.PointFromText("POINT(34.77497984348338 32.07549149508553)", 4326)
                };
                var Point3D4 = new Point3D {
                    Level = 2, Longitude = 34.774953825764996m, Latitude = 32.07549049106811m, Wkt = "POINT(34.774953825764996 32.07549049106811)", LocationG = DbGeometry.PointFromText("POINT(34.774953825764996 32.07549049106811)", 4326)
                };
                poly.Points.Add(Point3D1); poly.Points.Add(Point3D2); poly.Points.Add(Point3D3); poly.Points.Add(Point3D4);
                golf.Location = poly;
                context.Stores.AddOrUpdate(golf);
                //context.
                SaveChanges(context);
            }

            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

            mockLoggingHelper = CreateMock <ILoggingHelper>();

            unit1Guid = Guid.NewGuid();
            unit2Guid = Guid.NewGuid();
            unit3Guid = Guid.NewGuid();
            user1Id   = System.Guid.NewGuid();
            user2Id   = System.Guid.NewGuid();

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON((511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933))", 27700);

            var unitLocation = new List <UnitLocation>()
            {
                new UnitLocation()
                {
                    UnitName = "unit1", ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit1Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit2", ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit2Guid, User_GUID = user1Id
                        }
                    }
                },
                new UnitLocation()
                {
                    UnitName = "unit3", ExternalId = "extunit2", ID = unit3Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> {
                        new UserRoleUnit {
                            Unit_GUID = unit3Guid, User_GUID = user2Id
                        }
                    }
                }
            };

            var accessLink = new List <AccessLink>()
            {
                new AccessLink()
                {
                    AccessLinkLine = unitBoundary,
                    ID             = Guid.NewGuid()
                }
            };

            accessLinkDto = new AccessLinkDTO()
            {
                OperationalObjectPoint   = DbGeometry.PointFromText("POINT (488938 197021)", 27700),
                NetworkIntersectionPoint = null,
                AccessLinkLine           = null,
                ActualLengthMeter        = 3,
                WorkloadLengthMeter      = 5,
                Approved = true,
                OperationalObject_GUID = Guid.NewGuid()
            };

            var mockAsynEnumerable        = new DbAsyncEnumerable <AccessLink>(accessLink);
            var mockAccessLinkDataService = MockDbSet(accessLink);

            mockFmoDbContext = CreateMock <RMDBContext>();
            mockFmoDbContext.Setup(x => x.Set <AccessLink>()).Returns(mockAccessLinkDataService.Object);
            mockFmoDbContext.Setup(x => x.AccessLinks).Returns(mockAccessLinkDataService.Object);
            mockFmoDbContext.Setup(c => c.AccessLinks.AsNoTracking()).Returns(mockAccessLinkDataService.Object);
            mockAccessLinkDataService.Setup(x => x.Include(It.IsAny <string>())).Returns(mockAccessLinkDataService.Object);
            var mockAsynEnumerable2        = new DbAsyncEnumerable <UnitLocation>(unitLocation);
            var mockAccessLinkDataService2 = MockDbSet(unitLocation);

            mockFmoDbContext.Setup(x => x.Set <UnitLocation>()).Returns(mockAccessLinkDataService2.Object);
            mockFmoDbContext.Setup(x => x.UnitLocations).Returns(mockAccessLinkDataService2.Object);
            mockFmoDbContext.Setup(c => c.UnitLocations.AsNoTracking()).Returns(mockAccessLinkDataService2.Object);
            mockAccessLinkDataService2.Setup(x => x.Include(It.IsAny <string>())).Returns(mockAccessLinkDataService2.Object);
            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockFmoDbContext.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            mockLoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new AccessLinkDataService(mockDatabaseFactory.Object, mockLoggingHelper.Object);
        }
        public HttpResponseMessage UploadMapShape()
        {
            HttpResponseMessage result = null;
            int bcount = 0;

            try
            {
                var httpRequest = HttpContext.Current.Request;

                PROJECT_IMPACT importInfo = null;

                if (httpRequest.Form.Count > 0)
                {
                    var imageInfo = httpRequest.Form["ImageInfo"];
                    if (imageInfo != null)
                    {
                        importInfo = (new System.Web.Script.Serialization.JavaScriptSerializer()).Deserialize <PROJECT_IMPACT>(imageInfo);
                    }
                }



                List <Geometry> geometries = new List <Geometry>(0);
                if (httpRequest.Files.Count > 0)
                {
                    string sessionID = Guid.NewGuid().ToString();



                    var docfiles = new List <string>();
                    foreach (string file in httpRequest.Files)
                    {
                        var postedFile = httpRequest.Files[file];

                        string targetFolder = $@"{HttpContext.Current.Server.MapPath("~")}UploadShape\{sessionID}";
                        if (!System.IO.Directory.Exists(targetFolder))
                        {
                            System.IO.Directory.CreateDirectory(targetFolder);
                        }

                        /*save file from client*/
                        var zipFilePath = $@"{targetFolder}\{postedFile.FileName}";
                        postedFile.SaveAs(zipFilePath);
                        docfiles.Add(zipFilePath);

                        /*extract zip file*/
                        var extractFilePath = $"{targetFolder}";
                        System.IO.Compression.ZipFile.ExtractToDirectory(zipFilePath, extractFilePath, System.Text.Encoding.UTF8);

                        /*process unzip file*/

                        var zipDirs = System.IO.Directory.GetDirectories(targetFolder);
                        zipDirs.ToList().ForEach(zipDir =>
                        {
                            var dirs = System.IO.Directory.GetDirectories(zipDir);
                            dirs.ToList().ForEach(dir =>
                            {
                                var loop = true;
                                /*search shape file*/
                                while (loop)
                                {
                                    loop      = false;
                                    var files = System.IO.Directory.GetFiles(dir, "*.shp", System.IO.SearchOption.AllDirectories);
                                    /*if dbf file not found then search shp*/
                                    if (files.Count() == 0)
                                    {
                                        files = System.IO.Directory.GetFiles(dir, "*.dbf", System.IO.SearchOption.AllDirectories);
                                    }

                                    files.ToList().ForEach(f =>
                                    {
                                        var fileInfo = new System.IO.FileInfo(f);

                                        try
                                        {
                                            Shapefile indexMapFile = Shapefile.OpenFile(f);
                                            indexMapFile.Reproject(KnownCoordinateSystems.Geographic.Asia.Indian1975);



                                            TDM.Models.Util.LatLngUTMConverter latLngUTMConverter = new TDM.Models.Util.LatLngUTMConverter("WGS 84");
                                            //var rr = latLngUTMConverter.convertLatLngToUtm(15.000095111201411, 100.64638250268084);

                                            string utmShape = "";
                                            foreach (IFeature feature in indexMapFile.Features)
                                            {
                                                if (feature != null && feature.Geometry != null)
                                                {
                                                    utmShape = feature.Geometry.Coordinates
                                                               .Select(coordinate => latLngUTMConverter.convertLatLngToUtm(coordinate.Y, coordinate.X))
                                                               .Select(utm => $"{utm.Easting} {utm.Northing}")
                                                               .Aggregate((current, next) => current + ", " + next);

                                                    geometries.Add(new Geometry()
                                                    {
                                                        //Shape = feature.Geometry.ToString(),
                                                        Shape    = $"{feature.Geometry.OgcGeometryType.ToString().ToUpper()} (({utmShape}))",
                                                        AREA     = Convert.ToDecimal(feature.DataRow["AREA"]),
                                                        ORIGIN_X = feature.DataRow["ORIGIN_X"].ToString(),
                                                        ORIGIN_Y = feature.DataRow["ORIGIN_Y"].ToString()
                                                    });
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            string k = "";
                                        }
                                    });
                                }
                            });
                        });
                    }


                    /*save data*/

                    importInfo.ID   = 0;
                    importInfo.Area = geometries.Sum(g => g.AREA);
                    PROJECT_IMPACT saveProject = tdmEntities.PROJECT_IMPACT.Add(importInfo);
                    tdmEntities.SaveChanges();

                    foreach (var geometry in geometries)
                    {
                        if (!geometry.Shape.Contains("MULTIPO"))
                        {
                            tdmEntities.PROJECT_IMPACT_GEOMETRY.Add(new PROJECT_IMPACT_GEOMETRY()
                            {
                                ProjectImpactID = importInfo.ID,
                                OriginX         = geometry.ORIGIN_X,
                                OriginY         = geometry.ORIGIN_Y,
                                Area            = geometry.AREA,
                                Shape           = (geometry.Shape.Contains("MULTIPO")) ? DbGeometry.MultiPolygonFromText(geometry.Shape, 4326) : DbGeometry.PolygonFromText(geometry.Shape, 4326),
                                UpdateDate      = DateTime.Now,
                                CreateDate      = DateTime.Now
                            });
                        }
                    }

                    tdmEntities.SaveChanges();

                    result = Request.CreateResponse(HttpStatusCode.Created, "Success");
                }
                else
                {
                    result = Request.CreateResponse(HttpStatusCode.BadRequest);
                }
            }
            catch (Exception exc)
            {
                result = Request.CreateResponse(HttpStatusCode.InternalServerError, exc.Message);
            }

            return(result);
        }
        /// <summary>
        /// Setup for Nunit Tests
        /// </summary>
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

            mockUnitLocationDataService       = CreateMock <IUnitLocationDataService>();
            mockPostCodeSectorDataService     = CreateMock <IPostcodeSectorDataService>();
            mockPostCodeDataService           = CreateMock <IPostcodeDataService>();
            mockScenarioDataService           = CreateMock <IScenarioDataService>();
            loggingHelperMock                 = CreateMock <ILoggingHelper>();
            mockUnitLocationDataService       = CreateMock <IUnitLocationDataService>();
            mockUnitManagerIntegrationService = CreateMock <IUnitManagerIntegrationService>();
            mockPostalAddressDataService      = CreateMock <IPostalAddressDataService>();

            userID         = System.Guid.Parse("A867065B-B91E-E711-9F8C-28D244AEF9ED");
            deliveryUnitID = System.Guid.Parse("B51AA229-C984-4CA6-9C12-510187B81050");
            var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700);

            actualDeliveryUnitListForUserResult = new List <UnitLocationDTO>()
            {
                new UnitLocationDTO()
                {
                    ID = Guid.NewGuid(), UnitName = "UnitOne", UnitBoundryPolygon = unitBoundary
                }
            };
            List <UnitLocationDataDTO> unitLocationDataDTOList = new List <UnitLocationDataDTO>()
            {
                new UnitLocationDataDTO()
                {
                    LocationId = Guid.NewGuid(), Name = "UnitOne", Area = "Polygon", Shape = unitBoundary
                }
            };

            CommonLibrary.EntityFramework.DTO.ReferenceDataCategoryDTO referenceDataCategoryDTO = new CommonLibrary.EntityFramework.DTO.ReferenceDataCategoryDTO()
            {
                CategoryName   = "PostalAddressType",
                ReferenceDatas = new List <CommonLibrary.EntityFramework.DTO.ReferenceDataDTO>()
                {
                    new CommonLibrary.EntityFramework.DTO.ReferenceDataDTO()
                    {
                        ReferenceDataValue = PostCodeTypeCategory.PostcodeSector.GetDescription()
                    },
                    new CommonLibrary.EntityFramework.DTO.ReferenceDataDTO()
                    {
                        ReferenceDataValue = PostCodeTypeCategory.PostcodeDistrict.GetDescription()
                    }
                }
            };
            PostcodeSectorDataDTO postcodeSectorDataDTO = new PostcodeSectorDataDTO()
            {
            };
            List <PostcodeDataDTO> postcodeDataDTOList = new List <PostcodeDataDTO>()
            {
                new PostcodeDataDTO()
                {
                    PostcodeUnit = "Unit1", ID = new Guid("B51AA229-C984-4CA6-9C12-510187B81050")
                }
            };
            List <ScenarioDataDTO> scenarioDataDTOList = new List <ScenarioDataDTO>()
            {
                new ScenarioDataDTO()
                {
                }
            };
            List <PostalAddressDataDTO> postalAddressDataServiceList = new List <PostalAddressDataDTO>()
            {
                new PostalAddressDataDTO()
                {
                    AddressType_GUID = new Guid("A867065B-B91E-E711-9F8C-28D244AEF9EC"), BuildingName = "bldg1", BuildingNumber = 1, SubBuildingName = "subbldg"
                }
            };
            List <DeliveryRouteDTO> deliveryRouteDTOList = new List <DeliveryRouteDTO>()
            {
            };

            // setup methods
            mockUnitManagerIntegrationService.Setup(x => x.GetReferenceDataGuId(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(new Guid("A867065B-B91E-E711-9F8C-28D244AEF9EC"));
            mockUnitLocationDataService.Setup(x => x.GetUnitsByUser(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(unitLocationDataDTOList);
            mockUnitManagerIntegrationService.Setup(x => x.GetReferenceDataSimpleLists(It.IsAny <string>())).ReturnsAsync(referenceDataCategoryDTO);
            mockPostCodeSectorDataService.Setup(x => x.GetPostcodeSectorByUdprn(It.IsAny <int>())).ReturnsAsync(postcodeSectorDataDTO);
            mockPostCodeDataService.Setup(x => x.GetPostcodeUnitForBasicSearch(It.IsAny <SearchInputDataDto>())).ReturnsAsync(postcodeDataDTOList);
            mockPostCodeDataService.Setup(x => x.GetPostcodeUnitCount(It.IsAny <SearchInputDataDto>())).ReturnsAsync(5);
            mockPostCodeDataService.Setup(x => x.GetPostcodeUnitForAdvanceSearch(It.IsAny <SearchInputDataDto>())).ReturnsAsync(postcodeDataDTOList);
            mockPostCodeDataService.Setup(x => x.GetPostcodeID(It.IsAny <string>())).ReturnsAsync(postcodeDataDTOList[0]);
            mockScenarioDataService.Setup(x => x.GetScenariosByOperationStateAndDeliveryUnit(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(scenarioDataDTOList);
            mockUnitLocationDataService.Setup(x => x.GetPostcodes(It.IsAny <List <Guid> >(), It.IsAny <Guid>())).ReturnsAsync(postcodeDataDTOList);
            mockPostCodeDataService.Setup(x => x.GetApproxLocation(It.IsAny <string>(), It.IsAny <Guid>())).ReturnsAsync(unitBoundary);
            mockPostalAddressDataService.Setup(x => x.GetPostalAddressDetails(It.IsAny <string>(), It.IsAny <Guid>())).ReturnsAsync(postalAddressDataServiceList);
            mockUnitManagerIntegrationService.Setup(x => x.GetRouteData(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(deliveryRouteDTOList);
            mockPostalAddressDataService.Setup(x => x.GetPostalAddressSearchDetails(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <List <Guid> >())).ReturnsAsync(new List <string>()
            {
                "123"
            });

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new UnitLocationBusinessService(mockUnitLocationDataService.Object, mockPostCodeSectorDataService.Object, mockPostCodeDataService.Object, mockScenarioDataService.Object, mockPostalAddressDataService.Object, loggingHelperMock.Object, mockUnitManagerIntegrationService.Object);
        }
Example #21
0
                private static IEnumerable <MethodInfo> GetSupportedMethods()
                {
                    yield return(GetStaticMethod(() => DbGeography.FromText(default(string))));

                    yield return(GetStaticMethod(() => DbGeography.FromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.PointFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.LineFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.PolygonFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiPointFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiLineFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiPolygonFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.GeographyCollectionFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]))));

                    yield return(GetStaticMethod(() => DbGeography.PointFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.LineFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.PolygonFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiPointFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiLineFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.MultiPolygonFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.GeographyCollectionFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeography.FromGml(default(string))));

                    yield return(GetStaticMethod(() => DbGeography.FromGml(default(string), default(int))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.AsBinary()));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.AsGml()));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.AsText()));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.SpatialEquals(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Disjoint(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Intersects(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Buffer(default(double))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Distance(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Intersection(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Union(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.Difference(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.SymmetricDifference(default(DbGeography))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.ElementAt(default(int))));

                    yield return(GetInstanceMethod((DbGeography geo) => geo.PointAt(default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.FromText(default(string))));

                    yield return(GetStaticMethod(() => DbGeometry.FromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.PointFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.LineFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.PolygonFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiPointFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiLineFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiPolygonFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.GeometryCollectionFromText(default(string), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]))));

                    yield return(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.PointFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.LineFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.PolygonFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiPointFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiLineFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.MultiPolygonFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.GeometryCollectionFromBinary(default(byte[]), default(int))));

                    yield return(GetStaticMethod(() => DbGeometry.FromGml(default(string))));

                    yield return(GetStaticMethod(() => DbGeometry.FromGml(default(string), default(int))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.AsBinary()));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.AsGml()));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.AsText()));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.SpatialEquals(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Disjoint(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Intersects(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Touches(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Crosses(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Within(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Contains(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Overlaps(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Relate(default(DbGeometry), default(string))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Buffer(default(double))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Distance(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Intersection(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Union(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.Difference(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.SymmetricDifference(default(DbGeometry))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.ElementAt(default(int))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.PointAt(default(int))));

                    yield return(GetInstanceMethod((DbGeometry geo) => geo.InteriorRingAt(default(int))));
                }
Example #22
0
        /// <summary>
        /// Setup for Nunit Tests.
        /// </summary>
        protected override void OnSetup()
        {
            unit1Guid = Guid.NewGuid();
            unit2Guid = Guid.NewGuid();
            unit3Guid = Guid.NewGuid();
            user1Id   = System.Guid.NewGuid();
            user2Id   = System.Guid.NewGuid();

            var unitBoundary = DbGeometry.PolygonFromText("POLYGON((511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933))", 27700);
            var location     = new List <Location>()
            {
                new Location()
                {
                    ID = unit1Guid, Shape = unitBoundary
                }
            };
            var roadName = new List <OSRoadLink>()
            {
                new OSRoadLink()
                {
                    CentreLineGeometry = unitBoundary,
                    RoadName           = "Road 001"
                }
            };

            refDataCategotyDTO = new List <ReferenceDataCategoryDTO>()
            {
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkType,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.AccessLinkTypeDefault,
                            ID = Guid.Parse("4DBA7B39-D23E-493A-9B8F-B94D181A082F")
                        },

                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.UserDefined,
                            ID = Guid.Parse("DA8F1A91-2E2B-4EEF-9A81-9B18A917CBF1")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkDirection,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.AccessLinkDirectionBoth,
                            ID = Guid.Parse("5DBA7B39-D23E-493A-9B8F-B94D181A082F")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkStatus,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.AccessLinkStatusLive,
                            ID = Guid.Parse("6DBA7B39-D23E-493A-9B8F-B94D181A082F")
                        },
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.AccessLinkStatusDraftPendingApproval,
                            ID = Guid.Parse("7DBA7B39-D23E-493A-9B8F-B94D181A082F")
                        },
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = null,
                            ReferenceDataValue = ReferenceDataValues.AccessLinkStatusDraftPendingReview,
                            ID = Guid.Parse("7B90B2F9-F62F-E711-8735-28D244AEF9ED")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.OperationalObjectType,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = ReferenceDataValues.OperationalObjectTypeDP,
                            ReferenceDataValue = ReferenceDataValues.OperationalObjectTypeDP,
                            ID = Guid.Parse("415c9129-0615-457e-98b7-3a60436320c5")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkParameters,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = ReferenceDataValues.AccessLinkSameRoadMaxDistance,
                            ReferenceDataValue = "25",
                            ID = Guid.Parse("9DBA7B39-D23E-493A-9B8F-B94D181A082F")
                        },
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = ReferenceDataValues.AccessLinkDiffRoadMaxDistance,
                            ReferenceDataValue = "1",
                            ID = Guid.Parse("3DBA7B39-D23E-493A-9B8F-B94D181A081F")
                        },
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.NetworkLinkType,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = ReferenceDataValues.AccessLinkDiffRoadMaxDistance,
                            ReferenceDataValue = "Road Link",
                            ID = Guid.Parse("09ce57b1-af13-4f8e-b4af-1de35b4a68a8")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.AccessLinkParameters,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = "Local Road",
                            ReferenceDataValue = "1",
                            ID = Guid.Parse("4DBA7B35-D23E-493A-9B8F-B94D181A082F")
                        }
                    }
                },
                new ReferenceDataCategoryDTO()
                {
                    CategoryName   = ReferenceDataCategoryNames.DeliveryPointUseIndicator,
                    ReferenceDatas = new List <ReferenceDataDTO>()
                    {
                        new ReferenceDataDTO()
                        {
                            ReferenceDataName  = "DeliveryPointUseIndicator",
                            ReferenceDataValue = "Residential",
                            ID = Guid.Parse("178edcad-9431-e711-83ec-28d244aef9ed")
                        }
                    }
                },
            };

            var networkLinks = new List <NetworkLink>()
            {
                new NetworkLink()
                {
                    ID                  = Guid.Parse("09ce57b1-af13-4f8e-b4af-1de35b4a68a8"),
                    TOID                = "osgb4000000023358315",
                    LinkGeometry        = DbGeometry.LineFromText("LINESTRING (511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933)", 27700),
                    NetworkLinkTypeGUID = new Guid("09ce57b1-af13-4f8e-b4af-1de35b4a68a8")
                }
            };

            // Setup for OSRoadLink.
            mockNetworkDBContext = CreateMock <NetworkDBContext>();
            var mockRoadNameDataService = MockDbSet(roadName);

            mockNetworkDBContext.Setup(x => x.Set <OSRoadLink>()).Returns(mockRoadNameDataService.Object);
            mockNetworkDBContext.Setup(x => x.OSRoadLinks).Returns(mockRoadNameDataService.Object);
            mockNetworkDBContext.Setup(c => c.OSRoadLinks.AsNoTracking()).Returns(mockRoadNameDataService.Object);
            mockRoadNameDataService.Setup(x => x.Include(It.IsAny <string>())).Returns(mockRoadNameDataService.Object);

            // Setup for Location.
            var mockRoadNameDataService2 = MockDbSet(location);

            mockNetworkDBContext.Setup(x => x.Set <Location>()).Returns(mockRoadNameDataService2.Object);
            mockNetworkDBContext.Setup(x => x.Locations).Returns(mockRoadNameDataService2.Object);
            mockNetworkDBContext.Setup(c => c.Locations.AsNoTracking()).Returns(mockRoadNameDataService2.Object);
            mockRoadNameDataService2.Setup(x => x.Include(It.IsAny <string>())).Returns(mockRoadNameDataService2.Object);

            // Setup for NetworkLink.
            var mockNetworkLink = MockDbSet(networkLinks);

            mockNetworkDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object);
            mockNetworkDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object);
            mockNetworkDBContext.Setup(c => c.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object);
            mockNetworkLink.Setup(x => x.Include(It.IsAny <string>())).Returns(mockNetworkLink.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <NetworkDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockNetworkDBContext.Object);

            // Setup for IRMTraceManager.
            mockILoggingHelper = CreateMock <ILoggingHelper>();
            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            mockILoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            testCandidate = new RoadNameDataService(mockDatabaseFactory.Object, mockILoggingHelper.Object);
        }