Exemple #1
0
        /// <summary>
        /// Calculates the co channel for pmse.
        /// </summary>
        /// <param name="pmseDevice">The Program Making and Special Events device.</param>
        /// <returns>returns integer</returns>
        public static int CalculateCoChannelForPMSE(PmseAssignment pmseDevice)
        {
            var pmseChannelCentreFrequency = Conversion.DTTChannelToFrequency(pmseDevice.Channel) + 4;
            var pmseLowerChannelUpperBound = Conversion.DTTChannelToFrequency(pmseDevice.Channel);
            var pmseUpperChannelLowerBound = Conversion.DTTChannelToFrequency(pmseDevice.Channel + 1);

            if (pmseDevice.FrequencyMHz + (pmseDevice.BandwidthMHz / 2.0) > pmseUpperChannelLowerBound)
            {
                return(pmseDevice.Channel + 1);
            }

            if (pmseDevice.FrequencyMHz - (pmseDevice.BandwidthMHz / 2.0) < pmseLowerChannelUpperBound)
            {
                return(pmseDevice.Channel - 1);
            }

            return(0);
        }
Exemple #2
0
        /// <summary>
        /// Processes the file.
        /// </summary>
        /// <param name="fileContent">The path.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="replyMessage">The reply message.</param>
        /// <returns>returns boolean.</returns>
        private bool ProcessWSDAssignmentFile(string[] fileContent, string fileName, out string replyMessage)
        {
            AuditId auditId    = AuditId.PmseSync;
            string  methodName = "ProcessWSDAssignmentFile";

            try
            {
                // Begin Log transaction
                this.PmseAssignmentLogger.Log(TraceEventType.Information, LoggingMessageId.PmseSyncGenericMessage, "Enter " + methodName + " for file : " + fileName);

                List <PmseAssignment> lstPmseAssignments = new List <PmseAssignment>();
                OSGLocation           assignmentLocation;

                foreach (var line in fileContent)
                {
                    string[] values = line.Split(',');
                    if (values[0] == "Assignment_ID")
                    {
                        continue;
                    }

                    try
                    {
                        PmseAssignment pmseAssignment = new PmseAssignment();
                        if (!this.CheckEquipmentType(values[1]) || !this.CheckSituationID(values[9]) || values[0] == string.Empty || !this.CheckRequiredInteger(values[2]) || !this.CheckRequiredInteger(values[3]) || !this.CheckFrequency(values[5]) || !this.CheckRequiredInteger(values[6]) || values[7] == string.Empty || values[8] == string.Empty)
                        {
                            lstPmseAssignments = null;
                            break;
                        }
                        else
                        {
                            assignmentLocation                 = Conversion.RoundTo10(values[2].ToDouble(), values[3].ToDouble());
                            pmseAssignment.OriginalEasting     = values[2].ToDouble();
                            pmseAssignment.OriginalNorthing    = values[3].ToDouble();
                            pmseAssignment.PartitionKey        = fileName;
                            pmseAssignment.RowKey              = values[0];
                            pmseAssignment.Assignment_ID       = values[0];
                            pmseAssignment.Equipment_Type_ID   = values[1];
                            pmseAssignment.Easting             = assignmentLocation.Easting;
                            pmseAssignment.Northing            = assignmentLocation.Northing;
                            pmseAssignment.AntennaHeightMetres = values[4].ToDouble();
                            pmseAssignment.FrequencyMHz        = values[5].ToDouble();
                            pmseAssignment.BandwidthMHz        = values[6].ToDouble();
                            pmseAssignment.Start               = values[7];
                            pmseAssignment.Finish              = values[8];
                            pmseAssignment.SituationID         = values[9];
                            pmseAssignment.Channel             = Conversion.DTTFrequencyToChannel(pmseAssignment.FrequencyMHz);
                            pmseAssignment.ClutterValue        = (int)this.TerrainData.CalculateClutter(pmseAssignment.Easting, pmseAssignment.Northing);
                            lstPmseAssignments.Add(pmseAssignment);
                        }
                    }
                    catch (Exception)
                    {
                        this.PmseAssignmentLogger.Log(TraceEventType.Error, LoggingMessageId.PmseSyncGenericMessage, string.Format("Error in File:{0}, Line :{1}", fileName, line));
                        lstPmseAssignments = null;
                    }
                }

                if (lstPmseAssignments != null && lstPmseAssignments.Count > 0 && lstPmseAssignments.Select(obj => obj.RowKey).Distinct().Count() == lstPmseAssignments.Count)
                {
                    List <PmseAssignment> existingPMSEData = this.CommonDalc.FetchEntity <PmseAssignment>(Utils.GetRegionalTableName(Constants.PMSEAssignmentsTable), null);
                    if (existingPMSEData.Count > 0)
                    {
                        this.CommonDalc.DeleteRecords(Constants.PMSEAssignmentsTable, existingPMSEData);
                    }

                    this.PmseSync.InsertFileDataToDatabase(lstPmseAssignments);
                    this.PmseAssignmentLogger.Log(TraceEventType.Information, LoggingMessageId.PmseSyncGenericMessage, "Exit " + methodName + " for file : " + fileName);
                    replyMessage = Utils.Configuration["mailBodySyncSuccessfully"];
                    return(true);
                }
                else
                {
                    replyMessage = Utils.Configuration["mailBodyFileNotValid"];
                    this.PmseAssignmentLogger.Log(TraceEventType.Error, LoggingMessageId.PmseSyncGenericMessage, "Validation failed while processing file  " + fileName);
                    this.PmseAssignmentAuditor.Audit(auditId, AuditStatus.Failure, this.stopWatch.ElapsedMilliseconds, methodName + "Validation failed while processing file  " + fileName);
                    return(false);
                }
            }
            catch (Exception e)
            {
                replyMessage = Utils.Configuration["mailBodyFailToProcessFile"];
                this.PmseAssignmentLogger.Log(TraceEventType.Error, LoggingMessageId.PmseSyncGenericMessage, "Exception Occured while processing file  " + fileName + " Exception :- " + e.ToString());
                this.PmseAssignmentAuditor.Audit(auditId, AuditStatus.Failure, this.stopWatch.ElapsedMilliseconds, methodName + "Exception Occured while processing file  " + fileName + " Exception :- " + e.ToString());
                return(false);
            }
        }
        private void ProcessWSDAssignmentFiles(string stage)
        {
            int    stageNumber     = Convert.ToInt32(Regex.Match(stage, @"\d+").Value);
            string inputFileFormat = "Stage {0} - Lot{1} - PMSE assignments.csv";
            string directoryPath   = this.GetDirectoryPath(stage);

            string[] fileNumbers = null;

            switch (stage)
            {
            case "Stage2":
                fileNumbers = new string[] { "5A", "5B", "6A", "6C", "7A", "7B", "7C", "8A", "8B" };
                break;

            case "Stage3":
                fileNumbers = new string[] { "9" };
                break;

            case "Stage4":
                fileNumbers = new string[] { "10" };
                break;

            case "Stage5":
                fileNumbers = new string[] { "13", "14" };
                break;

            case "Stage6":
                fileNumbers = new string[] { "16", "17" };
                break;
            }

            foreach (string fileNumber in fileNumbers)
            {
                string stage2TableName = string.Format("RGN5{0}Lot{1}PMSEassignments", stage, fileNumber);

                this.Logger.Log(TraceEventType.Information, LoggingMessageId.PortalOfcomEvaluation, "processing of stage " + stage + " PMSE file " + fileNumber + " started at " + DateTime.Now);

                // Get All PmseAssigments
                IEnumerable <PmseAssignment> assignments = this.regionDataAccess.GetAllPmseAssignementEntities(stage2TableName);

                if (assignments.Count() > 0)
                {
                    // delete all assignments
                    this.regionDataAccess.DeletePmseEntities(assignments, stage2TableName);
                }

                string filePath = directoryPath + string.Format(inputFileFormat, stageNumber, fileNumber);

                List <PmseAssignment> pmseAssigments = new List <PmseAssignment>();
                OSGLocation           assignmentLocation;
                PmseAssignment        pmseAssignment;
                string[] values;

                foreach (var line in File.ReadAllLines(filePath))
                {
                    values = line.Split(',');
                    if (values[0] == "Assignment_ID" || string.IsNullOrEmpty(values[0]))
                    {
                        continue;
                    }

                    assignmentLocation                 = Conversion.RoundTo10(values[2].ToDouble(), values[3].ToDouble());
                    pmseAssignment                     = new PmseAssignment();
                    pmseAssignment.PartitionKey        = "PMSE";
                    pmseAssignment.RowKey              = values[0];
                    pmseAssignment.Assignment_ID       = values[0];
                    pmseAssignment.Equipment_Type_ID   = values[1];
                    pmseAssignment.OriginalEasting     = values[2].ToDouble();
                    pmseAssignment.OriginalNorthing    = values[3].ToDouble();
                    pmseAssignment.Easting             = assignmentLocation.Easting;
                    pmseAssignment.Northing            = assignmentLocation.Northing;
                    pmseAssignment.AntennaHeightMetres = values[4].ToDouble();
                    pmseAssignment.FrequencyMHz        = values[5].ToDouble();
                    pmseAssignment.BandwidthMHz        = values[6].ToDouble();
                    pmseAssignment.Start               = values[7];
                    pmseAssignment.Finish              = values[8];
                    pmseAssignment.SituationID         = values[9];
                    pmseAssignment.Channel             = Conversion.DTTFrequencyToChannel(pmseAssignment.FrequencyMHz);
                    pmseAssignment.ClutterValue        = 1;
                    pmseAssigments.Add(pmseAssignment);
                }

                this.regionDataAccess.InsertPmseEntities(pmseAssigments, stage2TableName);

                this.Logger.Log(TraceEventType.Information, LoggingMessageId.PortalOfcomEvaluation, "processing of stage " + stage + " PMSE file " + fileNumber + " ended at " + DateTime.Now);
            }
        }