partial void DeletePopulationTransport(PopulationTransport instance);
partial void UpdatePopulationTransport(PopulationTransport instance);
partial void InsertPopulationTransport(PopulationTransport instance);
private void detach_PopulationTransports(PopulationTransport entity) { this.SendPropertyChanging(); entity.Transit = null; }
private void attach_PopulationTransports(PopulationTransport entity) { this.SendPropertyChanging(); entity.Player = this; }
public static Tuple<PopulationTransport, CelestialObject> CreatePopulationTransport(string playerName, string password, int fromBodyID, int toBodyID, int count) { using (var t = new TransactionScope()) { var db = new DbDataContext(); var player = db.GetPlayer(playerName, password); var from = player.CelestialObjects.Single(x => x.CelestialObjectID == fromBodyID); var target = db.CelestialObjects.Single(x => x.CelestialObjectID == toBodyID); if (from.Population < count) throw new ApplicationException("There are not enough people on this planet"); from.Population -= count; from.UpdateIncomeInfo(); var transport = new PopulationTransport() { Count = count, Player = player, Transit = new Transit() }; player.PopulationTransports.Add(transport); var transit = transport.Transit; transit.SetTransit(target, FleetBaseWarp, db.GetConfig().CombatTurn + 1 , db.GetConfig()); // will start next turn db.MarkDirty(); db.SubmitChanges(); t.Complete(); return new Tuple<PopulationTransport, CelestialObject>(transport, from); } }