public async Task <IActionResult> Index(int?satelliteId, int pageLimit = 150) { int satId = satelliteId ?? settings.DefaultSatelliteId; var getSatellitesTask = GetSatellites(satId); var getTelemetryTask = GetTelemetryRows(satId); (List <SatelliteEntry> satellites, DateTimeOffset satLastUpdated) = await getSatellitesTask; List <TelemetryRow> telemetries; DateTimeOffset lastUpdated; try { (telemetries, lastUpdated) = await getTelemetryTask; } catch (Exception ex) { telemetries = new List <TelemetryRow>(); lastUpdated = default; ViewBag.Error = $"Could not get telemetry. {ex.Message}"; } SatelliteEntry satellite = satellites.FirstOrDefault(); // Fixup image URL // try { satellite.Image = new UriBuilder(satellite.Image) { Scheme = Uri.UriSchemeHttps, Port = -1 }.Uri.ToString(); } catch { } ListTelemetryViewModel viewModel = new ListTelemetryViewModel() { SatelliteId = satId, Satellite = satellite, Telemetries = telemetries.Take(pageLimit).ToList(), PageLimit = pageLimit, LastUpdated = lastUpdated }; return(View(viewModel)); }
private void createSatelliteIni() { if (!RunParameters.Instance.DebugIDs.Contains("CREATESATINI")) return; Collection<SatelliteEntry> satelliteEntries = new Collection<SatelliteEntry>(); foreach (NetworkInformationSection networkInformationSection in NetworkInformationSection.NetworkInformationSections) { foreach (TransportStream transportStream in networkInformationSection.TransportStreams) { foreach (DescriptorBase descriptor in transportStream.Descriptors) { DVBSatelliteDeliverySystemDescriptor satelliteDescriptor = descriptor as DVBSatelliteDeliverySystemDescriptor; if (satelliteDescriptor != null) { bool added = false; foreach (SatelliteEntry satelliteEntry in satelliteEntries) { if (satelliteEntry.OrbitalPosition == satelliteDescriptor.OrbitalPosition && satelliteEntry.East == satelliteDescriptor.EastFlag) { satelliteEntry.Add(satelliteDescriptor); added = true; break; } } if (!added) { SatelliteEntry newSatelliteEntry = new SatelliteEntry(); newSatelliteEntry.Add(satelliteDescriptor); satelliteEntries.Add(newSatelliteEntry); } } } } } foreach (SatelliteEntry satelliteEntry in satelliteEntries) { string fileName = Path.Combine(RunParameters.DataDirectory, satelliteEntry.OrbitalPosition.ToString().PadLeft(4, '0') + ".ini"); try { if (File.Exists(fileName)) { if (File.Exists(fileName + ".bak")) { File.SetAttributes(fileName + ".bak", FileAttributes.Normal); File.Delete(fileName + ".bak"); } File.Copy(fileName, fileName + ".bak"); File.SetAttributes(fileName + ".bak", FileAttributes.ReadOnly); File.SetAttributes(fileName, FileAttributes.Normal); } FileStream fileStream = new FileStream(fileName, FileMode.Create); StreamWriter streamWriter = new StreamWriter(fileStream); streamWriter.WriteLine("; [ Created by EPG Collector " + DateTime.Now); streamWriter.WriteLine(""); streamWriter.WriteLine("[SATTYPE]"); streamWriter.WriteLine("1=" + satelliteEntry.OrbitalPosition.ToString().PadLeft(4, '0')); string orbitalPosition; if (satelliteEntry.East) orbitalPosition = "2=" + (satelliteEntry.OrbitalPosition / 10) + "." + (satelliteEntry.OrbitalPosition % 10) + "E"; else orbitalPosition = "2=" + (satelliteEntry.OrbitalPosition / 10) + "." + (satelliteEntry.OrbitalPosition % 10) + "W"; streamWriter.WriteLine(orbitalPosition); streamWriter.WriteLine(""); streamWriter.WriteLine("[DVB]"); streamWriter.WriteLine("0=" + satelliteEntry.SatelliteDescriptors.Count); int lineNumber = 0; foreach (DVBSatelliteDeliverySystemDescriptor satelliteDescriptor in satelliteEntry.SatelliteDescriptors) { lineNumber++; string polarization = getPolarization(satelliteDescriptor.Polarization); string innerFec = getInnerFec(satelliteDescriptor.InnerFEC); string modulationType = getModulationType(satelliteDescriptor.ModulationType); string modulationSystem; if (!satelliteDescriptor.S2Flag) modulationSystem = "DVB-S"; else modulationSystem = "S2"; streamWriter.WriteLine(lineNumber + "=" + (satelliteDescriptor.Frequency / 100) + "," + polarization + "," + (satelliteDescriptor.SymbolRate / 10) + "," + innerFec + "," + modulationSystem + "," + modulationType); } streamWriter.Close(); fileStream.Close(); } catch (IOException e) { Logger.Instance.Write("<E> Exception creating satellite ini file:"); Logger.Instance.Write("<E> " + e.Message); return; } } }