コード例 #1
0
        /// <summary>
        /// Creates automatic access link.
        /// </summary>
        /// <param name="accessLinkDto">Access link data object.</param>
        /// <returns>Success.</returns>
        public bool CreateAccessLink(AccessLinkDTO accessLinkDto)
        {
            try
            {
                using (loggingHelper.RMTraceManager.StartTrace("DataService.CreateAccessLink"))
                {
                    string methodName = MethodBase.GetCurrentMethod().Name;
                    loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionStarted, TraceEventType.Information, null, LoggerTraceConstants.Category, LoggerTraceConstants.AccessLinkAPIPriority, LoggerTraceConstants.AccessLinkDataServiceMethodEntryEventId, LoggerTraceConstants.Title);

                    bool accessLinkCreationSuccess = false;

                    AccessLink accessLink = new AccessLink
                    {
                        ID = Guid.NewGuid(),
                        OperationalObjectPoint   = accessLinkDto.OperationalObjectPoint,
                        NetworkIntersectionPoint = accessLinkDto.NetworkIntersectionPoint,
                        AccessLinkLine           = accessLinkDto.AccessLinkLine,
                        ActualLengthMeter        = accessLinkDto.ActualLengthMeter,
                        WorkloadLengthMeter      = accessLinkDto.WorkloadLengthMeter,
                        Approved = accessLinkDto.Approved,
                        OperationalObject_GUID     = accessLinkDto.OperationalObject_GUID,
                        NetworkLink_GUID           = accessLinkDto.NetworkLink_GUID,
                        AccessLinkType_GUID        = accessLinkDto.AccessLinkType_GUID,
                        LinkStatus_GUID            = accessLinkDto.LinkStatus_GUID,
                        LinkDirection_GUID         = accessLinkDto.LinkDirection_GUID,
                        OperationalObjectType_GUID = accessLinkDto.OperationalObjectType_GUID
                    };

                    DataContext.AccessLinks.Add(accessLink);

                    accessLinkCreationSuccess = DataContext.SaveChanges() > 0;
                    loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionCompleted, TraceEventType.Information, null, LoggerTraceConstants.Category, LoggerTraceConstants.AccessLinkAPIPriority, LoggerTraceConstants.AccessLinkDataServiceMethodExitEventId, LoggerTraceConstants.Title);
                    return(accessLinkCreationSuccess);
                }
            }
            catch (DbUpdateException dbUpdateException)
            {
                throw new DataAccessException(dbUpdateException, string.Format(ErrorConstants.Err_SqlAddException, string.Concat("automatic access link")));
            }
        }
コード例 #2
0
        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);
        }