static void Main() { string dirlocation = @"D:\D - Software and School Folder\Acads\Computer Self Study\C++\www.learncpp.com\Expert C++\HTML"; string FileName = @"Chapter 1.html"; string input = File.ReadAllText(Path.Combine(dirlocation, FileName)); TagsGenerator gen = new TagsGenerator(input); gen.RemoveTagStyles(); File.WriteAllText(Path.Combine(dirlocation, "Chapter1_converted.html"), gen.InsertNewLineCharacters()); }
private void AddGeneratedSessions(List <Session> sessions, IList <Person> persons, IEnumerable <TimeSlot> timeSlots, IList <Track> tracks) { var textGenerator = new SampleTextGenerator(); const SampleTextGenerator.SourceNames descTextSource = SampleTextGenerator.SourceNames.Decameron; // levels setup so "intermediate" sessions occur more frequently var levels = new[] { _levels[0], _levels[1], _levels[1], _levels[1], _levels[2] }; var levelCount = levels.Length; var trackCount = tracks.Count; var trackIx = 0; var slots = timeSlots.Where(t => t != _keyNoteTimeSlot).ToArray(); var slotsCount = slots.Length; var personsCount = persons.Count; const int firstKnownSpeakerIx = 2; // skip the "reserved" attendees who we know are not speakers. const int firstCrowdIx = 4; // first person in the crowd who could be a speaker var chosenCount = TheChosen._theChosen.Count(); var speakerIxs = new List <int>(); // speakers assigned in the current timeslot // Populate sessions var slotIx = 0; // current slot while (slotIx < slotsCount) { var slot = slots[slotIx]; // Assign sessions by track, looping through tracks var track = tracks[trackIx]; var room = _roomsForGeneratedSessions[trackIx]; // track sessions are in the same room // Weight the draw of speakers towards the "well-known" speakers // Ensure a person only speaks once in a timeslot //var speakerIx = Rand.Next(firstKnownSpeakerIx, firstCrowdIx+5); var speakerIx = Rand.Next(firstKnownSpeakerIx, firstKnownSpeakerIx + chosenCount); if (speakerIx >= firstCrowdIx || speakerIxs.Contains(speakerIx)) { do { speakerIx = Rand.Next(firstCrowdIx, Math.Min(75, personsCount)); //Max speakers allowed are 75 } while (speakerIxs.Contains(speakerIx)); } speakerIxs.Add(speakerIx); var speaker = persons[speakerIx]; var level = levels[Rand.Next(0, levelCount)]; var session = new Session { Title = GenerateTitle(track), Code = GenSessionCode(track.Name, level), SpeakerId = speaker.Id, TrackId = track.Id, TimeSlotId = slot.Id, RoomId = room.Id, Level = level, Tags = TagsGenerator.GenTags(track.Name), Description = textGenerator.GenSentences(40, descTextSource), }; sessions.Add(session); // Limit to 110 sessions if (sessions.Count > 110) { return; } if (++trackIx != trackCount) { continue; } // Ran around the tracks; bump to next TimeSlot and reset slotIx++; trackIx = 0; speakerIxs.Clear(); } }