private List <MissionText> GetMissionTexts(string path)
        {
            var missionTexts = new List <MissionText>();
            var dirInfo      = new DirectoryInfo(path);

            foreach (var file in dirInfo.EnumerateFiles())
            {
                using (var reader = new StreamReader(file.FullName))
                {
                    var contents    = reader.ReadToEnd().Split(Environment.NewLine);
                    var missionText = MissionText.Parse(file.Name, contents);
                    missionTexts.Add(missionText);
                }
            }

            var campaigns  = missionTexts.Where(text => text is MissionTextCampaign).Cast <MissionTextCampaign>().ToList();
            var situations = missionTexts.Where(text => text is MissionTextSituation).Cast <MissionTextSituation>().ToList();

            foreach (var campaign in campaigns)
            {
                var fileNumber = int.Parse(campaign.FileName.Substring(1, 2));
                for (var i = fileNumber + 1; i < fileNumber + 9; i++)
                {
                    var fileName = $"C{i}.TXT";
                    var file     = situations.Single(f => f.FileName == fileName);
                    campaign.Situations.Add(file);
                    missionTexts.Remove(file);
                }
            }
            return(missionTexts);
        }
Example #2
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("Starting...");
            var dirInfo      = new DirectoryInfo(@"C:\temp\apache_texts\texts");
            var missionTexts = new List <MissionText>();

            foreach (var file in dirInfo.EnumerateFiles())
            {
                using (var reader = new StreamReader(file.FullName))
                {
                    var contents    = reader.ReadToEnd().Split(Environment.NewLine);
                    var missionText = MissionText.Parse(file.Name, contents);
                    missionTexts.Add(missionText);
                }
            }

            missionTexts = missionTexts.Where(t => t.Labels.Any()).ToList();

            MissionTextStatistics.PrintStatistics(missionTexts, System.Console.WriteLine);

            foreach (var missionText in missionTexts)
            {
                System.Console.WriteLine(missionText.ToString());
            }
        }