示例#1
0
        /// <summary>
        /// Gets the service cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns List of cache data.</returns>
        public object GetServiceCacheObjects(ServiceCacheObjectType cacheObjectType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            if (cacheObjectType == ServiceCacheObjectType.PMSEAssignment)
            {
                return(this.GetPMSEAssignment(serviceCacheRequestParameters));
            }

            return(null);
        }
        /// <summary>
        /// Validates the Add Incumbents request.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
        public override bool ValidateAddIncumbentRequestTBAS(Parameters parameters, out List <string> errorMessages)
        {
            var valResult = base.ValidateAddIncumbentRequestTBAS(parameters, out errorMessages);

            if (valResult)
            {
                if (!this.TvSpectrum(parameters, out errorMessages))
                {
                    return(false);
                }

                if (!this.TempBasLocation(parameters, out errorMessages))
                {
                    return(false);
                }

                if (!this.TransmitLocation(parameters, out errorMessages))
                {
                    return(false);
                }

                if (!this.EventTBAS(parameters, out errorMessages))
                {
                    return(false);
                }

                if (parameters.TvSpectrum.CallSign == null)
                {
                    errorMessages.Add(Constants.ErrorMessageCallSignRequired);
                    return(false);
                }

                var serviceCacheRequestParameter = new ServiceCacheRequestParameters()
                {
                    VsdService = "DT"
                };
                var callSigns = DatabaseCache.ServiceCacheHelper.SearchCacheObjects(ServiceCacheObjectType.TvEngData, SearchCacheRequestType.ByVsdService, serviceCacheRequestParameter) as IEnumerable <CacheObjectTvEngdata>;

                if (callSigns.FirstOrDefault(obj => obj.CallSign == parameters.TvSpectrum.CallSign) == null)
                {
                    errorMessages.Add(Constants.ErrorMessageCallSignNotExist);
                    return(false);
                }

                if (GeoCalculations.GetDistance(parameters.TransmitLocation, parameters.TempBasLocation).InMeter() < 100)
                {
                    errorMessages.Add(Constants.ErrorMessageDistanceLessThan100);
                    return(false);
                }
            }

            return(valResult);
        }
示例#3
0
        /// <summary>
        /// Gets the service cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns List of cache data.</returns>
        public object GetServiceCacheObjects(ServiceCacheObjectType cacheObjectType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            if (cacheObjectType == ServiceCacheObjectType.RegionPolygons)
            {
                if (regionPolygonsCacheDictionary == null)
                {
                    this.FillRegionPolygonsCacheDictionary();
                }

                return(regionPolygonsCacheDictionary);
            }

            return(null);
        }
示例#4
0
        /// <summary>
        /// Gets the incumbents.
        /// </summary>
        /// <param name="requestParameters">The request parameters.</param>
        /// <returns>returns Incumbent[][].</returns>
        private List <PmseAssignment> GetPMSEAssignment(ServiceCacheRequestParameters requestParameters)
        {
            const string LogMethodName = "OFCOMServiceCacheHelper.GetPMSEAssignment";

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);
            try
            {
                this.LoadCacheData <PmseAssignment>(ServiceCacheObjectType.PMSEAssignment);
                return(pmseAssignmentCache);
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, string.Format("Error in {0}: Message {1}", LogMethodName, ex.ToString()));
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(null);
        }
示例#5
0
        /// <summary>
        /// Gets the service cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns List of cache data.</returns>
        public object GetServiceCacheObjects(ServiceCacheObjectType cacheObjectType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            if (cacheObjectType == ServiceCacheObjectType.TvEngData)
            {
                return(this.GetIncumbents(serviceCacheRequestParameters));
            }

            if (cacheObjectType == ServiceCacheObjectType.LPAUX)
            {
                return(this.GetLPAuxRegistrations(serviceCacheRequestParameters));
            }

            if (cacheObjectType == ServiceCacheObjectType.RegionPolygons)
            {
                this.FillRegionPolygonsCache();
                return(regionPolygonsCache);
            }

            return(null);
        }
示例#6
0
        /// <summary>
        /// Gets the incumbents.
        /// </summary>
        /// <param name="requestParameters">The request parameters.</param>
        /// <returns>returns Incumbent[][].</returns>
        private Incumbent[] GetIncumbents(ServiceCacheRequestParameters requestParameters)
        {
            const string LogMethodName = "FCCServiceCacheHelper.GetIncumbents";

            List <Incumbent> incumbents = new List <Incumbent>();

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);
            try
            {
                var squareArea = requestParameters.SearchArea;

                this.LoadCacheData <CacheObjectTvEngdata>(ServiceCacheObjectType.TvEngData);
                if (tvengCache != null)
                {
                    IEnumerable <CacheObjectTvEngdata> engDataList = tvengCache.Where(p => (p.Latitude <= squareArea.TopLeftPoint.Latitude && p.Latitude >= squareArea.BottomRightPoint.Latitude &&
                                                                                            p.Longitude <= squareArea.BottomRightPoint.Longitude && p.Longitude >= squareArea.TopLeftPoint.Longitude));

                    foreach (CacheObjectTvEngdata engData in engDataList)
                    {
                        Incumbent incumbent = new Incumbent();
                        incumbent.Channel    = engData.Channel;
                        incumbent.CallSign   = engData.CallSign;
                        incumbent.Latitude   = engData.Latitude;
                        incumbent.Longitude  = engData.Longitude;
                        incumbent.Contour    = engData.Contour;
                        incumbent.VsdService = engData.VsdService;
                        incumbents.Add(incumbent);
                    }
                }
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, string.Format("Error in {0}: Message {1}", LogMethodName, ex.ToString()));
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(incumbents.ToArray());
        }
示例#7
0
        /// <summary>
        /// Gets the LPAUX registrations.
        /// </summary>
        /// <param name="requestParameters">The request parameters.</param>
        /// <returns>returns Incumbent[].</returns>
        private List <LPAuxRegistration> GetLPAuxRegistrations(ServiceCacheRequestParameters requestParameters)
        {
            const string LogMethodName = "FCCServiceCacheHelper.GetLPAuxRegistrations";

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);
            try
            {
                if (lpauxCache == null)
                {
                    this.FillLpAuxCache();
                }

                return(lpauxCache.ToList());
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, string.Format("Error in {0}: Message {1}", LogMethodName, ex.ToString()));
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(null);
        }
示例#8
0
        /// <summary>
        /// Searches the cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="searchCacheRequestType">Type of the search cache request.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns System.Object.</returns>
        public object SearchCacheObjects(ServiceCacheObjectType cacheObjectType, SearchCacheRequestType searchCacheRequestType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            const string LogMethodName = "PortalServiceCacheHelper.SearchCacheObjects";

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);

            object results = null;

            try
            {
                if (cacheObjectType == ServiceCacheObjectType.RegionPolygons)
                {
                    this.FillRegionPolygonsCacheDictionary();
                    results = regionPolygonsCacheDictionary;
                }
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, ex.ToString());
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(results);
        }
示例#9
0
        /// <summary>
        /// Searches the cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="searchCacheRequestType">Type of the search cache request.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns System.Object.</returns>
        public object SearchCacheObjects(ServiceCacheObjectType cacheObjectType, SearchCacheRequestType searchCacheRequestType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            const string LogMethodName = "FCCServiceCacheHelper.SearchCacheObjects";

            List <Incumbent> incumbents = new List <Incumbent>();

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);
            object results = null;

            try
            {
                if (cacheObjectType == ServiceCacheObjectType.TvEngData)
                {
                    this.LoadCacheData <CacheObjectTvEngdata>(ServiceCacheObjectType.TvEngData);

                    if (((int)searchCacheRequestType & (int)SearchCacheRequestType.ByCallSign) == (int)SearchCacheRequestType.ByCallSign)
                    {
                        results = tvengCache.Where(obj => obj.CallSign == serviceCacheRequestParameters.CallSign).ToList();
                    }
                    else if (((int)searchCacheRequestType & (int)SearchCacheRequestType.ByVsdService) == (int)SearchCacheRequestType.ByVsdService)
                    {
                        results = tvengCache.Where(obj => obj.VsdService == serviceCacheRequestParameters.VsdService);
                    }
                }
                else if (cacheObjectType == ServiceCacheObjectType.LPAUX)
                {
                    this.LoadCacheData <LPAuxRegistration>(ServiceCacheObjectType.LPAUX);
                    if (((int)searchCacheRequestType & (int)SearchCacheRequestType.None) == (int)SearchCacheRequestType.None)
                    {
                        results = lpauxCache;
                    }
                }
                else if (cacheObjectType == ServiceCacheObjectType.RegionPolygons)
                {
                    this.LoadCacheData <RegionPolygonsCache>(ServiceCacheObjectType.RegionPolygons);
                    results = regionPolygonsCache;
                }
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, string.Format("Error in {0}: Message {1}", LogMethodName, ex.ToString()));
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(results);
        }
示例#10
0
        /// <summary>
        /// Searches the cache objects.
        /// </summary>
        /// <param name="cacheObjectType">Type of the cache object.</param>
        /// <param name="searchCacheRequestType">Type of the search cache request.</param>
        /// <param name="serviceCacheRequestParameters">The service cache request parameters.</param>
        /// <returns>returns System.Object.</returns>
        public object SearchCacheObjects(ServiceCacheObjectType cacheObjectType, SearchCacheRequestType searchCacheRequestType, ServiceCacheRequestParameters serviceCacheRequestParameters)
        {
            const string LogMethodName = "OFCOMServiceCacheHelper.SearchCacheObjects";

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Enter " + LogMethodName);
            object results = null;

            try
            {
                this.LoadCacheData <PmseAssignment>(ServiceCacheObjectType.PMSEAssignment);

                if (((int)searchCacheRequestType & (int)SearchCacheRequestType.ByEastingNorthing) == (int)SearchCacheRequestType.ByEastingNorthing)
                {
                    results = pmseAssignmentCache.Where(obj => obj.Easting == serviceCacheRequestParameters.Easting && obj.Northing == serviceCacheRequestParameters.Northing);
                }
            }
            catch (Exception ex)
            {
                this.Logger.Log(TraceEventType.Error, LoggingMessageId.DatabaseCacheMessage, string.Format("Error in {0}: Message {1}", LogMethodName, ex.ToString()));
            }

            this.Logger.Log(TraceEventType.Information, LoggingMessageId.DatabaseCacheMessage, "Exit " + LogMethodName);

            return(results);
        }