internal bool SetOffer(int index, bool accept) { MyOffer offer = Offer(index); if (offer is null) { return(false); } offer.Confirm = accept ? (true, true) : (false, false); return(true); }
static public void Load() { try { Console.WriteLine($"{DateTime.Now}: Начат процесс загрузки…"); MyBotSettings.Load(); ImmutableList <MyPlayer> .Builder playersBuilder = ImmutableList.CreateBuilder <MyPlayer>(); ImmutableList <MyFaction> .Builder factionsBuilder = ImmutableList.CreateBuilder <MyFaction>(); ImmutableList <MySector> .Builder sectorsBuilder = ImmutableList.CreateBuilder <MySector>(); ImmutableList <MyPolitic> .Builder politicsBuilder = ImmutableList.CreateBuilder <MyPolitic>(); ImmutableList <AMyFight> .Builder fightsBuilder = ImmutableList.CreateBuilder <AMyFight>(); ImmutableList <MyOffer> .Builder offersBuilder = ImmutableList.CreateBuilder <MyOffer>(); ImmutableList <MyScript> .Builder scriptsBuilder = ImmutableList.CreateBuilder <MyScript>(); ImmutableList <MyTimer> .Builder timersBuilder = ImmutableList.CreateBuilder <MyTimer>(); Parallel.Invoke(() => Parallel.ForEach(Directory.GetFiles(SavePathPlayers), item => { using (FileStream stream = File.OpenRead(item)) { MyPlayer player = (MyPlayer)MyPlayerSerializer.ReadObject(stream); lock (playersBuilder) { playersBuilder.Add(player); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathFactions), item => { using (FileStream stream = File.OpenRead(item)) { MyFaction faction = (MyFaction)MyFactionSerializer.ReadObject(stream); lock (factionsBuilder) { factionsBuilder.Add(faction); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathSectors), item => { using (FileStream stream = File.OpenRead(item)) { MySector sector = (MySector)MySectorSerializer.ReadObject(stream); lock (sectorsBuilder) { sectorsBuilder.Add(sector); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathPolitics), item => { using (FileStream stream = File.OpenRead(item)) { MyPolitic pol = (MyPolitic)MyPoliticSerializer.ReadObject(stream); lock (politicsBuilder) { politicsBuilder.Add(pol); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathFights), item => { using (FileStream stream = File.OpenRead(item)) { AMyFight fight; if (item.Contains("@S")) { fight = (MySectorFight)MySectorFightSerializer.ReadObject(stream); } else if (item.Contains("@T")) { fight = (MyTradeShipFight)MyTradeShipFightSerializer.ReadObject(stream); } else if (item.Contains("@C")) { fight = (MyCustomFight)MyCustomFightSerializer.ReadObject(stream); } else { throw new FileLoadException("Неизвестный тип боя", item); } lock (fightsBuilder) { fightsBuilder.Add(fight); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathOffers), item => { using (FileStream stream = File.OpenRead(item)) { MyOffer offer = (MyOffer)MyOfferSerializer.ReadObject(stream); lock (offersBuilder) { offersBuilder.Add(offer); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathScripts), item => { using (FileStream stream = File.OpenRead(item)) { MyScript scr = (MyScript)MyScriptSerializer.ReadObject(stream); lock (scriptsBuilder) { scriptsBuilder.Add(scr); } } }), () => Parallel.ForEach(Directory.GetFiles(SavePathTimers), item => { using (FileStream stream = File.OpenRead(item)) { MyTimer timer = (MyTimer)MyTimerSerializer.ReadObject(stream); lock (timersBuilder) { timersBuilder.Add(timer); } } })); playersBuilder.Sort(); factionsBuilder.Sort(); sectorsBuilder.Sort(); Players = playersBuilder.ToImmutable(); Factions = factionsBuilder.ToImmutable(); Sectors = sectorsBuilder.ToImmutable(); Politics = politicsBuilder.ToImmutable(); Fights = fightsBuilder.ToImmutable(); Offers = offersBuilder.ToImmutable(); Scripts = scriptsBuilder.ToImmutable(); Timers = timersBuilder.ToImmutable(); Console.WriteLine($"{DateTime.Now}: Загрузка завершена"); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"{DateTime.Now}: Исключение во время попытки загрузки: {e.Message}\r\n{e.StackTrace}"); Console.ForegroundColor = ConsoleColor.Green; } }
public MyEventOfferCreated(MyOffer offer) : base(false) => Offer = offer;