using System; using CsvHelper.Configuration.Attributes; namespace StarsAssistant.CSV; public class Fleet { [Index(0)] public string FleetName { get; set; } = String.Empty; [Index(1)] public int X { get; set; } [Index(2)] public int Y { get; set; } [Index(3)] public string Planet { get; set; } = String.Empty; [Index(4)] public string Destination { get; set; } = String.Empty; [Index(5)] public string BattlePlan { get; set; } = String.Empty; [Index(6)] public int ShipCount { get; set; } [Index(7)] public int Ironium { get; set; } [Index(8)] public int Boranium { get; set; } [Index(9)] public int Germanium { get; set; } [Index(10)] public int Colonists { get; set; } [Index(11)] public int Fuel { get; set; } [Index(12)] public int OwnerFileId { get; set; } [Ignore()] public int ETA { get; private set; } [Index(13)] public string CSVETA { set { if ( value.Length >= 2 && int.TryParse(value[..^1], out int result)) { ETA = result; } else { ETA = 0; } } } [Index(14)] public int Warp { get; set; } [Index(15)] public int Mass { get; set; } [Index(16)] public int Cloak { get; set; } [Index(17)] public int Scan { get; set; } [Index(18)] public int PenScan { get; set; } [Index(19)] public string Task { get; set; } = String.Empty; [Index(20)] public int Mining { get; set; } [Index(21)] public int Sweep { get; set; } [Index(22)] public int Laying { get; set; } [Index(23)] public int Terraforming { get; set; } [Index(24)] public int Unarmed { get; set; } [Index(25)] public int Scout { get; set; } [Index(26)] public int Warship { get; set; } [Index(27)] public int Utility { get; set; } [Index(28)] public int Bomber { get; set; } /// /// This will update a DB Fleet recrod with this CSV Data. DB/EF Handling /// has to be done by the caller, we'll take care of none PK properties /// only. /// /// record to fill public void UpdateDbFleet(Model.Fleet dbFleet) { if (dbFleet == null) throw new InvalidOperationException("Cannot update a null DB fleet instance"); dbFleet.FleetName = FleetName; dbFleet.X = X; dbFleet.Y = Y; dbFleet.Planet = Planet; dbFleet.Destination = Destination; dbFleet.BattlePlan = BattlePlan; dbFleet.ShipCount = ShipCount; dbFleet.Ironium = Ironium; dbFleet.Boranium = Boranium; dbFleet.Germanium = Germanium; dbFleet.Colonists = Colonists; dbFleet.Fuel = Fuel; dbFleet.OwnerFileId = OwnerFileId; dbFleet.ETA = ETA; dbFleet.Warp = Warp; dbFleet.Mass = Mass; dbFleet.Cloak = Cloak; dbFleet.Scan = Scan; dbFleet.PenScan = PenScan; dbFleet.Task = Task; dbFleet.Mining = Mining; dbFleet.Sweep = Sweep; dbFleet.Laying = Laying; dbFleet.Terraforming = Terraforming; dbFleet.Unarmed = Unarmed; dbFleet.Scout = Scout; dbFleet.Warship = Warship; dbFleet.Utility = Utility; } }