private IEnumerable <mwc.Incumbent> GetIncumbentsFromTable(string tableName, string partitionKey, IncumbentType incumbentType) { // Todo: this is a temporary method provided until the backend supports retriving incumbents of type "tv_us" Microsoft.WhiteSpaces.AzureTableAccess.AzureTableOperation azureTableOperations = new Microsoft.WhiteSpaces.AzureTableAccess.AzureTableOperation(); string tableQuery = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey); if (incumbentType != IncumbentType.None) { tableQuery = TableQuery.CombineFilters(tableQuery, TableOperators.And, TableQuery.GenerateFilterConditionForInt("Type", QueryComparisons.Equal, (int)incumbentType)); } IEnumerable <mwc.Incumbent> tvEngDataList = azureTableOperations.GetAllEntities <CDBSTvEngData>(tableName, tableQuery) .Select(cdbsTvEndData => { List <Position> contourPoints = WhitespacesManager.GetContourPointsSpaceSeperator(cdbsTvEndData.Contour); mwc.Incumbent incumbent = new mwc.Incumbent( cdbsTvEndData.CallSign, cdbsTvEndData.Channel, contourPoints, null, incumbentType, null, new Location(cdbsTvEndData.Latitude, cdbsTvEndData.Longitude)); return(incumbent); }); return(tvEngDataList); }
private static List <mwc.Incumbent> ParseRawIncumbents(IncumbentType incumbentType, object[] rawIncumbents, IEnumerable <int> channels) { dynamic incumbentList = null; List <mwc.Incumbent> incumbents = new List <mwc.Incumbent>(); if (rawIncumbents != null) { switch (incumbentType) { case IncumbentType.MVPD: incumbentList = WhitespacesManager.GetDeserializedIncumbents <MVPDRegistration>(rawIncumbents); break; case IncumbentType.LPAux: case IncumbentType.UnlicensedLPAux: incumbentList = WhitespacesManager.GetDeserializedIncumbents <LPAuxRegistration>(rawIncumbents); break; case IncumbentType.TBAS: incumbentList = WhitespacesManager.GetDeserializedIncumbents <TempBASRegistration>(rawIncumbents); break; case IncumbentType.TV_US: // TODO: Logic to de-serialize TV_US incumbents type. [Need to wait until back-end supports this] break; } if (incumbentList != null) { foreach (object incumbent in incumbentList) { mwc.Incumbent incumbentModel = WhitespacesManager.GetIncumbent(incumbent, incumbentType); incumbents.Add(incumbentModel); } } if (channels != null) { IEnumerable <mwc.Incumbent> filteredIncumbents = WhitespacesManager.FilterIncumbentsByChannel(incumbents, channels); incumbents = filteredIncumbents != null?filteredIncumbents.ToList() : incumbents; } } return(incumbents); }
private static mwc.Incumbent GetIncumbent(object incumbent, IncumbentType requestedIncumbentType) { mwc.Incumbent incumbentModel = null; if (incumbent is MVPDRegistration) { MVPDRegistration mvpdRegistration = (MVPDRegistration)incumbent; // TODO: BroadcastStationContour was removed // List<Position> contourPoints = WhitespacesManager.GetContourPoints(mvpdRegistration.BroadcastStationContour); List <Position> contourPoints = new List <Position>(); incumbentModel = new mwc.Incumbent( mvpdRegistration.Channel.CallSign, mvpdRegistration.ChannelNumber, contourPoints, null, requestedIncumbentType, mvpdRegistration.Location, mvpdRegistration.TransmitLocation); } else if (incumbent is TempBASRegistration) { TempBASRegistration tempBasRegistration = (TempBASRegistration)incumbent; // TODO: BroadcastStationContour was removed // List<Position> contourPoints = WhitespacesManager.GetContourPoints(tempBasRegistration.BroadcastStationContour); List <Position> contourPoints = new List <Position>(); incumbentModel = new mwc.Incumbent( tempBasRegistration.Channel.CallSign, tempBasRegistration.ChannelNumber, contourPoints, tempBasRegistration.Event, requestedIncumbentType, tempBasRegistration.RecvLocation, tempBasRegistration.TransmitLocation); } else if (incumbent is LPAuxRegistration) { LPAuxRegistration lpAuxIncumbent = (LPAuxRegistration)incumbent; List <Position> contourPoints = new List <Position>(); if (lpAuxIncumbent.PointsArea != null) { contourPoints = lpAuxIncumbent.PointsArea.ToList(); } else if (lpAuxIncumbent.QuadrilateralArea != null) { foreach (QuadrilateralArea area in lpAuxIncumbent.QuadrilateralArea) { contourPoints.Add(area.NEPoint); contourPoints.Add(area.NWPoint); contourPoints.Add(area.SEPoint); contourPoints.Add(area.SWPoint); } } // TODO: How to get ReceiveLocation for LPAuxRegistration entity. incumbentModel = new mwc.Incumbent( lpAuxIncumbent.CallSign.CallSign, lpAuxIncumbent.CallSign.Channel.Value, contourPoints, lpAuxIncumbent.Event, requestedIncumbentType, null, new Location(lpAuxIncumbent.Latitude, lpAuxIncumbent.Longitude)); } //// TODO: Logic to create Incumbent object for TV_US incumbent type, as now not sure what Object type to be compare with. return(incumbentModel); }