コード例 #1
0
        /// <summary>
        /// Executes the get mission internal code from operator code valid operation.
        /// </summary>
        /// <param name="accessor">The accessor.</param>
        /// <param name="operatorCode">The operator code.</param>
        /// <param name="expectedResult">The expected internal code result.</param>
        private static void ExecuteGetMissionInternalCodeFromOperatorCodeValid(LmtDatabaseAccessor accessor, string operatorCode, uint?expectedResult)
        {
            uint?result = null;

            result = accessor.GetMissionInternalCodeFromOperatorCode(operatorCode);

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedResult, result);
        }
コード例 #2
0
        /// <summary>
        /// Executes the get mission internal code from operator code not valid operation.
        /// </summary>
        /// <param name="accessor">The accessor.</param>
        private static void ExecuteGetMissionInternalCodeFromOperatorCodeNotValid(LmtDatabaseAccessor accessor)
        {
            string operatorCode = "NotValid";

            uint?result = 1;

            result = accessor.GetMissionInternalCodeFromOperatorCode(operatorCode);

            Assert.IsNull(result);
        }
コード例 #3
0
        /// <summary>
        /// Performs the get station list from LMT data base.
        /// </summary>
        /// <param name="missionCode">The mission code.</param>
        /// <param name="elementId">Identifier for the element.</param>
        /// <param name="elementData">Information describing the element.</param>
        /// <param name="result">[in, out] The result.</param>
        protected virtual void PerformGetStationListFromLMTDataBase(string missionCode, string elementId, AvailableElementData elementData, ref RealTimeRetrieveStationListResult result)
        {
            if (result == null)
            {
                result            = new RealTimeRetrieveStationListResult();
                result.ResultCode = RealTimeServiceErrorEnum.RequestAccepted;
            }

            if (elementData.PisBaselineData != null)
            {
                if (!string.IsNullOrEmpty(elementData.PisBaselineData.CurrentVersionLmtOut))
                {
                    string lmtVersion = elementData.PisBaselineData.CurrentVersionLmtOut;

                    using (var remoteDataStore = _remoteDataStoreFactory.GetRemoteDataStoreInstance() as RemoteDataStoreProxy)
                    {
                        if (remoteDataStore != null)
                        {
                            if (remoteDataStore.checkIfDataPackageExists("LMT", lmtVersion))
                            {
                                var openPackageResult = remoteDataStore.openLocalDataPackage(
                                    "LMT",
                                    lmtVersion,
                                    string.Empty);

                                if (openPackageResult.Status == OpenDataPackageStatusEnum.COMPLETED)
                                {
                                    string lmtDatabaseFilePath = FindLmtDatabaseFilePath(openPackageResult.LocalPackagePath);
                                    if (!string.IsNullOrEmpty(lmtDatabaseFilePath))
                                    {
                                        using (var lmtDatabaseAccessor = new LmtDatabaseAccessor(lmtDatabaseFilePath, _platformType))
                                        {
                                            result.ResultCode  = RealTimeServiceErrorEnum.RequestAccepted;
                                            result.StationList = new List <string>();

                                            if (string.IsNullOrEmpty(missionCode))
                                            {
                                                foreach (var station in lmtDatabaseAccessor.GetStationList())
                                                {
                                                    if (!result.StationList.Contains(station.OperatorCode))
                                                    {
                                                        result.StationList.Add(station.OperatorCode);
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                uint?missionId = lmtDatabaseAccessor.GetMissionInternalCodeFromOperatorCode(missionCode);
                                                if (missionId != null)
                                                {
                                                    List <uint> missionRoute = lmtDatabaseAccessor.GetMissionRoute((uint)missionId);
                                                    foreach (uint stationId in missionRoute)
                                                    {
                                                        result.StationList.Add(lmtDatabaseAccessor.GetStationOperatorCodeFromInternalCode(stationId));
                                                    }
                                                }
                                                else
                                                {
                                                    result.ResultCode = RealTimeServiceErrorEnum.ErrorInvalidMissionCode;
                                                }
                                            }

                                            if (result.ResultCode == RealTimeServiceErrorEnum.RequestAccepted &&
                                                result.StationList.Count == 0)
                                            {
                                                result.ResultCode = RealTimeServiceErrorEnum.InfoNoDataForElement;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        result.ResultCode = RealTimeServiceErrorEnum.ErrorRemoteDatastoreUnavailable;
                                        LogManager.WriteLog(TraceType.ERROR, string.Format(CultureInfo.CurrentCulture, Logs.ERROR_RETRIEVESTATIONLIST_LMT_DB_NOT_FOUND, lmtVersion, elementId), "PIS.Ground.RealTime.RealTimeService.RetrieveStationList", null, EventIdEnum.RealTime);
                                    }
                                }
                                else
                                {
                                    result.ResultCode = RealTimeServiceErrorEnum.ErrorRemoteDatastoreUnavailable;
                                    LogManager.WriteLog(TraceType.ERROR, string.Format(CultureInfo.CurrentCulture, Logs.ERROR_RETRIEVESTATIONLIST_CANT_OPEN_PACKAGE, lmtVersion, elementId), "PIS.Ground.RealTime.RealTimeService.RetrieveStationList", null, EventIdEnum.RealTime);
                                }
                            }
                            else
                            {
                                result.ResultCode = RealTimeServiceErrorEnum.ErrorRemoteDatastoreUnavailable;
                                LogManager.WriteLog(TraceType.ERROR, string.Format(CultureInfo.CurrentCulture, Logs.ERROR_RETRIEVESTATIONLIST_UNKNOWN_EMBEDDED_LMT, lmtVersion), "PIS.Ground.RealTime.RealTimeService.RetrieveStationList", null, EventIdEnum.RealTime);
                            }
                        }
                        else
                        {
                            result.ResultCode = RealTimeServiceErrorEnum.ErrorRemoteDatastoreUnavailable;
                            LogManager.WriteLog(TraceType.ERROR, string.Format(CultureInfo.CurrentCulture, Logs.ERROR_UNKNOWN), "PIS.Ground.RealTime.RealTimeService.RetrieveStationList", null, EventIdEnum.RealTime);
                        }
                    }
                }
                else
                {
                    result.ResultCode = RealTimeServiceErrorEnum.InfoNoDataForElement;
                }
            }
        }