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;
		}
Ejemplo n.º 6
0
		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);
			}

		}