BuCol Setup

This commit is contained in:
2024-09-26 22:18:50 +02:00
parent a394918064
commit a03edf8983
8 changed files with 137 additions and 49 deletions

View File

@ -4,6 +4,7 @@ using CsvHelper.Configuration;
using CsvHelper;
using System.Globalization;
using Splat;
using StarsAssistant.Services;
namespace StarsAssistant.CSV;
@ -45,49 +46,48 @@ public class PlanetLoader
/// <param name="race">Import File</param>
public void ImportForRace(Model.Race race)
{
using (var db = Locator.Current.GetService<Model.StarsDatabase>()!)
using (var reader = new StreamReader(Game.PlanetFileForRace(race), System.Text.Encoding.Latin1))
using (var csv = new CsvReader(reader, CsvConfig))
{
List<CSV.Planet> records = csv.GetRecords<Planet>().ToList();
var planetByPlayer = from csvp in records
group csvp by csvp.Owner into byOwners
select byOwners;
using var db = Locator.Current.GetService<Model.StarsDatabase>()!;
using var reader = new StreamReader(Game.PlanetFileForRace(race), System.Text.Encoding.Latin1);
using var csv = new CsvReader(reader, CsvConfig);
foreach (var owner in planetByPlayer)
List<CSV.Planet> records = csv.GetRecords<Planet>().ToList();
var planetByPlayer = from csvp in records
group csvp by csvp.Owner into byOwners
select byOwners;
foreach (var owner in planetByPlayer)
{
Model.Race? r;
if (owner.Key == race.Name)
{
Model.Race? r;
if (owner.Key == race.Name)
r = race;
}
else
{
r = db.Race.Find(owner.Key);
if (r == null)
{
r = race;
r = new() { Name = owner.Key };
db.Add(r);
}
}
foreach (Planet csvp in owner)
{
Model.Planet? p = db.Planet.Find(csvp.Name);
if (p == null)
{
p = new() { Name = csvp.Name };
csvp.UpdateDbPlanet(p);
db.Add(p);
}
else
{
r = db.Race.Find(owner.Key);
if (r == null)
{
r = new() { Name = owner.Key };
db.Add(r);
}
csvp.UpdateDbPlanet(p);
db.Update(p);
}
foreach (Planet csvp in owner)
{
Model.Planet? p = db.Planet.Find(csvp.Name);
if (p == null)
{
p = new() { Name = csvp.Name };
csvp.UpdateDbPlanet(p);
db.Add(p);
}
else
{
csvp.UpdateDbPlanet(p);
db.Update(p);
}
}
db.SaveChanges();
}
db.SaveChanges();
}
}
}