Ejemplo n.º 1
0
        /// <summary>
        ///  Builds Temp Bas Registration Array
        /// </summary>
        /// <param name="xmlNodeList"> xml node list</param>
        /// <param name="wsdba">White Space DBA Name</param>
        /// <param name="namespacemanager">XML name space manager</param>
        /// <returns>TempoBasRegistration array</returns>
        private TempBASRegistration[] BuildTempBASRegistration(XmlNodeList xmlNodeList, string wsdba, XmlNamespaceManager namespacemanager)
        {
            TempBASRegistration[] tempBasRegistrations;
            try
            {
                // Temp Bas Registrations processing
                this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "Begin " + "SyncManager.ParseResponseXML - TempBasRegistrations serialization Started");
                tempBasRegistrations = new TempBASRegistration[xmlNodeList.Count];
                for (int regindex = 0; regindex < xmlNodeList.Count; regindex++)
                {
                    TempBASRegistration tempBasRegn = new TempBASRegistration();
                    this.regbuilder.BuildEntity(tempBasRegn, xmlNodeList[regindex], namespacemanager);
                    tempBasRegn.WSDBA        = wsdba;
                    tempBasRegn.Timestamp    = DateTime.Now;
                    tempBasRegn.RowKey       = tempBasRegn.Disposition.RegId;
                    tempBasRegn.PartitionKey = tempBasRegn.WSDBA;
                    tempBasRegn.SerializeObjectsToJston();
                    tempBasRegistrations[regindex] = tempBasRegn;
                }
            }
            catch
            {
                throw;
            }

            return(tempBasRegistrations);
        }
        public IEnumerable <TempBASRegistration> GetTempBasRegistrations(string userId)
        {
            List <TempBASRegistration> registrations = new List <TempBASRegistration>();
            object lockobject = new object();

            var           query   = new TableQuery <DynamicTableEntity>();
            List <string> columns = new List <string>();

            columns.Add("TempBasRegDisposition");
            columns.Add("TempBasRegistrant");
            columns.Add("TempBasContact");
            columns.Add("TempBasLocation");
            columns.Add("TempBasChannel");
            columns.Add("TempBasTransmitLocation");
            columns.Add("TempBasEvent");
            columns.Add("UserId");
            query.Select(columns);

            string registrationTableName = Microsoft.Whitespace.Common.Utils.GetRegionalTableName(Microsoft.Whitespace.Entities.Constants.TempBasRegistrationTableName);

            var results = this.azureTableOperations.GetTableEntityProjection(registrationTableName, query);

            if (results != null && results.Count() > 0)
            {
                if (!string.IsNullOrEmpty(userId))
                {
                    results = results.Where(x => x.Properties["UserId"].StringValue == userId);
                }

                Parallel.ForEach(
                    results,
                    result =>
                {
                    var tempBasRegistration = new TempBASRegistration
                    {
                        TempBasRegDisposition   = result.Properties["TempBasRegDisposition"].StringValue,
                        TempBasRegistrant       = result.Properties["TempBasRegistrant"].StringValue,
                        TempBasContact          = result.Properties["TempBasContact"].StringValue,
                        TempBasLocation         = result.Properties["TempBasLocation"].StringValue,
                        TempBasChannel          = result.Properties["TempBasChannel"].StringValue,
                        TempBasTransmitLocation = result.Properties["TempBasTransmitLocation"].StringValue,
                        TempBasEvent            = result.Properties["TempBasEvent"].StringValue,
                        UserId       = result.Properties["UserId"].StringValue,
                        PartitionKey = result.PartitionKey,
                        RowKey       = result.RowKey,
                        ETag         = result.ETag
                    };

                    lock (lockobject)
                    {
                        registrations.Add(tempBasRegistration);
                    }
                });
            }

            return(registrations);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// parses the response xml received as poll response.
        /// </summary>
        /// <param name="adminName">Indicates admin name </param>
        /// <param name="pollResponse">response xml string</param>
        /// <param name="key">public key of the administrator</param>
        private void ParseResponseXML(string adminName, string pollResponse, string key)
        {
            string wsdba = null;

            LPAuxRegistration[]         lpauxRegistrations        = null;
            MVPDRegistration[]          mvpdRegistrations         = null;
            TempBASRegistration[]       tempBasRegistrations      = null;
            FixedTVBDRegistration[]     fixedTVBDRegistrations    = null;
            TVReceiveSiteRegistration[] tvreceiveSiteRegistrtions = null;

            this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin - dbSyncManager ParseResponseXML()");
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.PreserveWhitespace = true;
            xmlDoc.LoadXml(pollResponse);

            XmlNodeList         regNodes         = null;
            XmlNamespaceManager namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable);

            namespaceManager.AddNamespace("vcard", Constants.VCardXmlns);
            namespaceManager.AddNamespace("ical", Constants.ICalXmlns);
            namespaceManager.AddNamespace("gml", Constants.GMLXmlns);
            namespaceManager.AddNamespace("ren", xmlDoc.DocumentElement.NamespaceURI);

            if (!this.IsXMLSignatureValid(xmlDoc, key))
            {
                this.logger.Log(TraceEventType.Error, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", SyncManager.ParseResponseXML - XML signature mismatched and not verified with the certificate. please check the xml file received.");
                throw new CryptographicException("Xml signature is not matching.");
            }
            else if (!this.IsXmlValidWithSchema(xmlDoc))
            {
                this.logger.Log(TraceEventType.Error, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", SyncManager.ParseResponseXML - XML file is invalid. please check the xml file received.");
                throw new XmlException("Xml file schema validaion failed.");
            }
            else
            {
                try
                {
                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - LP-AuxRegistrations serialization Started");
                    wsdba = xmlDoc.SelectSingleNode("//ren:RegistrationRecordEnsemble/ren:EnsembleDescription/ren:Registrar", namespaceManager).InnerText;

                    // lpAuxRegistrations processing.
                    regNodes           = xmlDoc.SelectNodes("//ren:Registration[ren:registrationType='LP-Aux_Registration']", namespaceManager);
                    lpauxRegistrations = new LPAuxRegistration[regNodes.Count];
                    if (regNodes != null && regNodes.Count > 0)
                    {
                        lpauxRegistrations = this.BuildLPAuxRegistrations(regNodes, wsdba, namespaceManager);
                    }

                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", End " + "SyncManager.ParseResponseXML - LP-AuxRegistrations serialization Completed");

                    // MVPD Registrations processing
                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - MVPD Registration serialization Started");
                    regNodes          = null;
                    regNodes          = xmlDoc.SelectNodes("//ren:Registration[ren:registrationType='MVPD_Registration']", namespaceManager);
                    mvpdRegistrations = new MVPDRegistration[regNodes.Count];
                    if (regNodes != null && regNodes.Count > 0)
                    {
                        mvpdRegistrations = this.BuildMVPDRegistrations(regNodes, wsdba, namespaceManager);
                    }

                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", End " + "SyncManager.ParseResponseXML - MVPD Registration serialization completed");

                    // Temp Bas Registraions Processing
                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - Temp Bas Registration serialization Started");
                    regNodes             = null;
                    regNodes             = xmlDoc.SelectNodes("//ren:Registration[ren:registrationType='Temp_BAS_Registration']", namespaceManager);
                    tempBasRegistrations = new TempBASRegistration[regNodes.Count];
                    if (regNodes != null && regNodes.Count > 0)
                    {
                        tempBasRegistrations = this.BuildTempBASRegistration(regNodes, wsdba, namespaceManager);
                    }

                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", End " + "SyncManager.ParseResponseXML - Temp Bas Registration serialization Completed");

                    // Fixed TVBD Registraions Processing
                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - Fixed TVBD Registration serialization Started");
                    regNodes = null;
                    regNodes = xmlDoc.SelectNodes("//ren:Registration[ren:registrationType='Fixed_TVBD_Registration']", namespaceManager);
                    fixedTVBDRegistrations = new FixedTVBDRegistration[regNodes.Count];
                    if (regNodes != null && regNodes.Count > 0)
                    {
                        fixedTVBDRegistrations = this.BuildFixedTVBDRegistrations(regNodes, wsdba, namespaceManager);
                    }

                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", End" + "SyncManager.ParseResponseXML - Fixed TVBD Registration serialization Completed");

                    // TV Receive Site Registrations proceswsing
                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - TV Receive Site Registration serialization Started");
                    regNodes = null;
                    regNodes = xmlDoc.SelectNodes("//ren:Registration[ren:registrationType='TV_Receive_Site_Registration']", namespaceManager);
                    tvreceiveSiteRegistrtions = new TVReceiveSiteRegistration[regNodes.Count];
                    if (regNodes != null && regNodes.Count > 0)
                    {
                        tvreceiveSiteRegistrtions = this.BuildTVSiteReceiveRegistrations(regNodes, wsdba, namespaceManager);
                    }

                    this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "SyncManager.ParseResponseXML - TV Receive Site Registration serialization Completed");
                }
                catch
                {
                    throw;
                }
            }

            try
            {
                this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", Begin " + "dalcDBSync.Update - Registration saving to azure table started");
                this.dalcDbSync.Update(adminName, fixedTVBDRegistrations, lpauxRegistrations, mvpdRegistrations, tvreceiveSiteRegistrtions, tempBasRegistrations, null);
                this.logger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "WSDBA:" + adminName + ", End " + "dalcDBSync.Update - Registration saving to azure table completed");
            }
            catch (StorageException e)
            {
                this.logger.Log(TraceEventType.Error, LoggingMessageId.DBSyncPollerGenericMessage, "dalcDbSync " + "dalcDBSync.Update - Registration saving to azure table got exception :" + e.ToString());
                this.auditor.Audit(AuditId.DBSyncPollRequest, AuditStatus.Failure, 0, "dalcDbSync " + "dalcDBSync.Update - Registration saving to azure table got exception :" + e.ToString());
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Build TBas Registration Xml Node
        /// </summary>
        /// <param name="node"> Xml Node </param>
        /// <param name="tempBasRegistration"> Temp BAS Registration </param>
        /// <param name="namespaceManager"> Namespace Manager </param>
        public static void BuildTBasRegistrationXmlNode(XmlNode node, TempBASRegistration tempBasRegistration, XmlNamespaceManager namespaceManager)
        {
            tempBasRegistration.DeSerializeObjectsFromJson();

            // disposition
            if (tempBasRegistration.Disposition != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:RegistrationDisposition/ren:RegistrationDate", namespaceManager).InnerText = tempBasRegistration.Disposition.RegDate.ToString();
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:RegistrationDisposition/ren:RegID", namespaceManager).InnerText            = tempBasRegistration.Disposition.RegId;
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:RegistrationDisposition/ren:Action", namespaceManager).InnerText           = tempBasRegistration.Disposition.Action.ToString();
            }

            // organization
            if (tempBasRegistration.Registrant.Org != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasRegistrant/vcard:properties/vcard:org/vcard:text", namespaceManager).InnerText = tempBasRegistration.Registrant.Org.OrganizationName;
            }

            // Formatted Name
            if (tempBasRegistration.Contact != null && tempBasRegistration.Contact.FN != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:fn/vcard:text", namespaceManager).InnerText = tempBasRegistration.Contact.FN.PrefText;
            }

            // Address
            if (tempBasRegistration.Contact != null && tempBasRegistration.Contact.Address != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr/vcard:street/vcard:text", namespaceManager).InnerText   = tempBasRegistration.Contact.Address.Street;
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr/vcard:locality/vcard:text", namespaceManager).InnerText = tempBasRegistration.Contact.Address.Locality;
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr/vcard:region/vcard:text", namespaceManager).InnerText   = tempBasRegistration.Contact.Address.Region;
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr/vcard:code/vcard:text", namespaceManager).InnerText     = tempBasRegistration.Contact.Address.Code;
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr/vcard:country/vcard:text", namespaceManager).InnerText  = tempBasRegistration.Contact.Address.Country;
            }

            // Email
            if (tempBasRegistration.Contact != null && tempBasRegistration.Contact.Email != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:email/vcard:text", namespaceManager).InnerText = tempBasRegistration.Contact.Email[0].EmailAddress;
            }

            // Telephone
            if (tempBasRegistration.Contact != null && tempBasRegistration.Contact.Telephone != null)
            {
                node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:tel/vcard:text", namespaceManager).InnerText = tempBasRegistration.Contact.Telephone[0].TelephoneNumber;
            }

            // temp bas
            if (tempBasRegistration.RecvLocation != null)
            {
                node = BuildLocation(node, tempBasRegistration.RecvLocation, namespaceManager, "//ren:Temp_BAS_Registration/ren:tbasRecvLocation/");
            }

            // Channel
            if (tempBasRegistration.Channel != null)
            {
                if (tempBasRegistration.Channel.Channel != null)
                {
                    node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasChannel/ren:ustChannel", namespaceManager).InnerText = tempBasRegistration.Channel.Channel.Value.ToString();
                }
                else
                {
                    XmlNode nodeChannel = node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasChannel/ren:ustChannel", namespaceManager);
                    node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasChannel", namespaceManager).RemoveChild(nodeChannel);
                }

                if (tempBasRegistration.Channel.CallSign != null)
                {
                    node.SelectSingleNode("//ren:Temp_BAS_Registration/ren:tbasChannel/ren:ustCallSign", namespaceManager).InnerText = tempBasRegistration.Channel.CallSign.ToString();
                }
            }

            // Xmitter
            if (tempBasRegistration.TransmitLocation != null)
            {
                node = BuildLocation(node, tempBasRegistration.TransmitLocation, namespaceManager, "//ren:Temp_BAS_Registration/ren:tbasXmitLocation/");
            }

            // event
            if (tempBasRegistration.Event != null)
            {
                node = BuildEvent(node, tempBasRegistration.Event, namespaceManager, "//ren:Temp_BAS_Registration/ren:tbasEvent");
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// constructs the TempBASRegistration entity
        /// </summary>
        /// <param name="tempBasRegEntity">TempBASRegistration to be constructed.</param>
        /// <param name="xmlNode">XML Node of the Registration</param>
        /// <param name="namespaceManager">namespace manager for xml name spaces</param>
        public void BuildEntity(TempBASRegistration tempBasRegEntity, XmlNode xmlNode, XmlNamespaceManager namespaceManager)
        {
            this.syncLogger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "Begin RegistrationEntityBuilder.BuildEntity for Temp Bas Registration");

            // Common Serialization
            XmlNode node = null;

            this.syncLogger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "Begin Build Temp Bas Registration Entity");

            // build Registration disposition object
            RegistrationDisposition regDisposition = new RegistrationDisposition();

            Utils.DeserializeXMLToObject(ref regDisposition, xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:RegistrationDisposition", namespaceManager).OuterXml);
            tempBasRegEntity.Disposition = regDisposition;

            // eamil
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:email", namespaceManager);
            if (node != null)
            {
                tempBasRegEntity.Contact.Email = this.BuildEamils(xmlNode.SelectNodes("ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:email", namespaceManager));
            }

            // address
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:adr", namespaceManager);
            if (node != null)
            {
                tempBasRegEntity.Contact.Address = this.BuildAddressEntity(node, namespaceManager);
            }

            // Registrant's org
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasRegistrant/vcard:properties/vcard:org", namespaceManager);
            if (node != null)
            {
                Entities.Versitcard.Organization org = new Entities.Versitcard.Organization();
                Utils.DeserializeXMLToObject(ref org, node.OuterXml);
                tempBasRegEntity.Registrant.Org = org;
            }

            // Telephones
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:tel", namespaceManager);
            if (node != null)
            {
                tempBasRegEntity.Contact.Telephone = this.BuildTelephones(xmlNode.SelectNodes("ren:Temp_BAS_Registration/ren:tbasContact/vcard:properties/vcard:tel", namespaceManager));
            }

            // Time zone
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasEvent/ren:presentationTime/ren:tzname", namespaceManager);
            if (node != null)
            {
                tempBasRegEntity.Contact.TimeZone = node.InnerText;
            }

            // Title
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:presentationTime/vcard:title", namespaceManager);
            if (node != null)
            {
                Entities.Versitcard.Title title = new Entities.Versitcard.Title();
                Utils.DeserializeXMLToObject(ref title, node.OuterXml);
                tempBasRegEntity.Contact.Title = title;
            }

            // Temp Bas serialization
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasRecvLocation", namespaceManager);
            if (node != null)
            {
                tempBasRegEntity.RecvLocation.Latitude  = Convert.ToDouble(node.SelectSingleNode("//ren:locLatitude", namespaceManager).InnerText);
                tempBasRegEntity.RecvLocation.Longitude = Convert.ToDouble(node.SelectSingleNode("//ren:locLongitude", namespaceManager).InnerText);
                tempBasRegEntity.RecvLocation.Datum     = node.SelectSingleNode("//ren:locDatum", namespaceManager).InnerText;
                RadiationCenter radiationCenter = new RadiationCenter();
                Utils.DeserializeXMLToObject(ref radiationCenter, node.SelectSingleNode("//ren:locRadiationCenter", namespaceManager).OuterXml);
                tempBasRegEntity.RecvLocation.RadiationCenter = radiationCenter;
            }

            // Temp Bas Channel serialization
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasChannel", namespaceManager);
            if (node != null)
            {
                if (node.SelectSingleNode("//ren:ustChannel", namespaceManager) != null)
                {
                    tempBasRegEntity.Channel.Channel = Convert.ToInt32(node.SelectSingleNode("//ren:ustChannel", namespaceManager).InnerText);
                }

                tempBasRegEntity.Channel.CallSign = node.SelectSingleNode("//ren:ustCallSign", namespaceManager).InnerText;
            }

            // Temp Bas transmit location serialiation
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasXmitLocation", namespaceManager);
            if (node != null)
            {
                XElement element      = XElement.Parse(node.OuterXml);
                var      curnamespace = element.GetDefaultNamespace();
                tempBasRegEntity.TransmitLocation.Latitude  = element.Descendants(XName.Get("locLatitude", curnamespace.NamespaceName)).FirstOrDefault().Value.ToDouble();
                tempBasRegEntity.TransmitLocation.Longitude = element.Descendants(XName.Get("locLongitude", curnamespace.NamespaceName)).FirstOrDefault().Value.ToDouble();
                tempBasRegEntity.TransmitLocation.Datum     = element.Descendants(XName.Get("locDatum", curnamespace.NamespaceName)).FirstOrDefault().Value;
                RadiationCenter radiationCenter = new RadiationCenter();
                Utils.DeserializeXMLToObject(ref radiationCenter, node.SelectSingleNode("//ren:locRadiationCenter", namespaceManager).OuterXml);
                tempBasRegEntity.TransmitLocation.RadiationCenter = radiationCenter;
            }

            // Temp Bas transmit location serialiation
            node = null;
            node = xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasEvent", namespaceManager);
            if (node != null)
            {
                // Event Deserializing
                tempBasRegEntity.Event = this.BuildRegistrationEvent(xmlNode.SelectSingleNode("ren:Temp_BAS_Registration/ren:tbasEvent", namespaceManager), namespaceManager);
            }

            this.syncLogger.Log(TraceEventType.Information, LoggingMessageId.DBSyncPollerGenericMessage, "End Build Temp Bas Registration Entity");
        }