コード例 #1
0
        public async Task <IList <AircraftInformation> > GetAllAsync()
        {
            DirectoryInfo positionDataDir = new DirectoryInfo(Properties.Settings.Default.DataPath);

            IList <AircraftInformation> aircraftDtos = new List <AircraftInformation>();

            foreach (FileInfo positionFile in positionDataDir.GetFiles("*.txt"))
            {
                AircraftInformation aircraftInformation = new AircraftInformation();
                aircraftInformation.File = positionFile;
                string aircaftInformationContent;
                using (StreamReader reader = File.OpenText(positionFile.FullName)) {
                    aircaftInformationContent = await reader.ReadToEndAsync();
                }

                AircraftInformation info = JsonConvert.DeserializeObject <AircraftInformation>(aircaftInformationContent);
                aircraftInformation.AircraftFile = info.AircraftFile;
                aircraftInformation.Livery       = info.Livery;
                aircraftInformation.Latitude     = info.Latitude;
                aircraftInformation.Longitude    = info.Longitude;
                aircraftInformation.Heading      = info.Heading;

                aircraftDtos.Add(aircraftInformation);
            }

            return(aircraftDtos);
        }
コード例 #2
0
        public Situation FindSit(AircraftInformation aircraftInformation)
        {
            DirectoryInfo xplaneRootPath = new DirectoryInfo(Properties.Settings.Default.XPlaneRootPath);
            DirectoryInfo sitFilePath    = new DirectoryInfo(
                Path.Combine(xplaneRootPath.FullName, Properties.Settings.Default.SituationsPathRelativeToXPlaneRoot));
            FileInfo sitFile = new FileInfo($@"{sitFilePath.FullName}{Path.DirectorySeparatorChar}{aircraftInformation.File.NameWithoutExtension()}.sit");

            return(new Situation(sitFile.Exists, sitFile));
        }
コード例 #3
0
        public Thumbnail FindThumbnail(AircraftInformation aircraftInformation)
        {
            DirectoryInfo xplaneRootPath = new DirectoryInfo(Properties.Settings.Default.XPlaneRootPath);
            FileInfo      thumbnail      = new FileInfo(
                $@"{xplaneRootPath.FullName}{Path.DirectorySeparatorChar}{aircraftInformation.Livery}{aircraftInformation.AircraftFile?.Replace(".acf", "")}{Properties.Settings.Default.ThumbnailEnding}");

            if (thumbnail.Exists)
            {
                return(new Thumbnail(true, thumbnail));
            }

            return(new Thumbnail(false, null));
        }
コード例 #4
0
        public async Task <AircraftLauncherInformation> FindForAircraftAsync(AircraftInformation aircraftInformation)
        {
            FileInfo aircraftFile = aircraftInformation.File;
            FileInfo launcherFile = new FileInfo(aircraftFile.FullName.Replace(aircraftFile.Extension, ".launcherV2"));

            if (launcherFile.Exists)
            {
                string launcherContent;
                using (StreamReader reader = File.OpenText(launcherFile.FullName)) {
                    launcherContent = await reader.ReadToEndAsync();
                }

                AircraftLauncherInformation aircraftLauncherInformation = JsonConvert.DeserializeObject <AircraftLauncherInformation>(launcherContent);
                aircraftLauncherInformation.LauncherInfoFile = launcherFile;
                return(aircraftLauncherInformation);
            }

            return(null);
        }
コード例 #5
0
 public Aircraft(AircraftInformation aircraftInformation, AircraftLauncherInformation launcherInfo)
 {
     Id                  = Guid.NewGuid();
     _launcherInfo       = launcherInfo;
     AircraftInformation = aircraftInformation;
 }