public static PlanetDetail AddResearchQueue(BuildingQue buildingQue) { PlanetDetail pl = PlanetDAL.GetPlanet(buildingQue.PlanetID, buildingQue.UserID); AllbuildQues BuildingsQueLeft = PlanetBLL.GetBuildingQueue(buildingQue.PlanetID, buildingQue.UserID); DateTime UTC = DateTime.UtcNow; BuildingQue bq = new BuildingQue(); bq.BuildingID = buildingQue.BuildingID; bq.PlanetID = buildingQue.PlanetID; bq.Seconds = buildingQue.Seconds; bq.UserID = buildingQue.UserID; bq.MaterialCost = 0; bq.Type = 2; DateTime?maxCompletetionDate = BuildingsQueLeft.researchQue.FindAll(x => x.Type == 2).Max(x => x.CompletetionDate); if (maxCompletetionDate.HasValue) { bq.CompletetionDate = maxCompletetionDate.Value.AddSeconds(buildingQue.Seconds.Value); } else { bq.CompletetionDate = UTC.AddSeconds(buildingQue.Seconds.Value); } PlanetDAL.AddBuildingQue(bq); return(pl); }
public IHttpActionResult AddBuildingQueue([FromBody] BuildingQue buildingQue) { try { return(Ok(PlanetBLL.AddBuildingQueue(buildingQue))); } catch (Exception e) { return(InternalServerError(e)); } }
public static List <Fleet> InsertUpdatePlayerShip(BuildingQue ship) { List <Fleet> fleets = ShipDAL.GetUserFleets(ship.UserID, ship.PlanetID).FindAll(x => x.Status == 0).OrderBy(x => x.Arrival).ToList(); if (fleets.Count == 0) { ShipDAL.AddFleet(ship); } else { ShipDAL.AddFleetDetails(ship, fleets[0].FleetID); } fleets = ShipDAL.GetUserFleets(ship.UserID, ship.PlanetID); return(fleets); }
public static void AddFleetDetails(BuildingQue ship, int?FleetID) { using (SqlConnection sqlConn = DatabaseHelper.GetConnection()) using (SqlCommand DBCmd = new SqlCommand("dbo.AddFleetDetails", sqlConn)) { SqlDataReader sqlReader = default(SqlDataReader); DBCmd.CommandType = CommandType.StoredProcedure; DBCmd.Parameters.AddWithValue("@UserID", ship.UserID); DBCmd.Parameters.AddWithValue("@FleetID", FleetID); DBCmd.Parameters.AddWithValue("@DesignID", ship.BuildingID); DBCmd.Parameters.AddWithValue("@ActualNumber", 1); DBCmd.Parameters.AddWithValue("@EffectiveNumber", 1); DBCmd.Parameters.AddWithValue("@Movement", ship.Movement); sqlConn.Open(); sqlReader = DBCmd.ExecuteReader(CommandBehavior.CloseConnection); } }
public static PlanetDetail AddShipQueue(BuildingQue buildingQue) { PlanetDetail pl = PlanetDAL.GetPlanet(buildingQue.PlanetID, buildingQue.UserID); UserDesigns ship = ShipDAL.GetShipDesignbyUser(buildingQue.UserID).Find(x => x.ShipDesignID == buildingQue.BuildingID); if (pl.Materials < ship.MaterialCost || pl.Military < ship.MilitaryCost) { throw new Exception("Not enough resources"); } else { PlanetDAL.UpdatePopAndMats(buildingQue.PlanetID, pl.Materials - buildingQue.MaterialCost, pl.Population, pl.Military - (int)ship.MilitaryCost.Value); pl.Materials -= buildingQue.MaterialCost; pl.Military -= (int)ship.MilitaryCost.Value; } AllbuildQues BuildingsQueLeft = PlanetBLL.GetBuildingQueue(buildingQue.PlanetID, buildingQue.UserID); DateTime UTC = DateTime.UtcNow; BuildingQue bq = new BuildingQue(); bq.BuildingID = buildingQue.BuildingID; bq.PlanetID = buildingQue.PlanetID; bq.Seconds = buildingQue.Seconds; bq.UserID = buildingQue.UserID; bq.MaterialCost = buildingQue.MaterialCost; bq.Movement = buildingQue.Movement; bq.Type = 3; DateTime?maxCompletetionDate = BuildingsQueLeft.shipQue.FindAll(x => x.Type == 3).Max(x => x.CompletetionDate); if (maxCompletetionDate.HasValue) { bq.CompletetionDate = maxCompletetionDate.Value.AddSeconds(buildingQue.Seconds.Value); } else { bq.CompletetionDate = UTC.AddSeconds(buildingQue.Seconds.Value); } PlanetDAL.AddBuildingQue(bq); return(pl); }
public static PlanetDetail AddBuildingQueue(BuildingQue buildingQue) { List <PlanetBuildings> buildings = PlanetDAL.GetBuildingTypes(buildingQue.PlanetID); PlanetBuildings pb = buildings.Find(x => x.BuildingID == buildingQue.BuildingID); PlanetDetail pl = PlanetDAL.GetPlanet(buildingQue.PlanetID, buildingQue.UserID); if (pl.Materials < buildingQue.MaterialCost || pl.Population < pb.PopulationCost) { throw new Exception("Not enough resources"); } else { PlanetDAL.UpdatePopAndMats(buildingQue.PlanetID, pl.Materials - buildingQue.MaterialCost, pl.Population - (int)pb.PopulationCost.Value, pl.Military); pl.Materials -= buildingQue.MaterialCost; pl.Population -= (int)pb.PopulationCost.Value; } AllbuildQues BuildingsQueLeft = GetBuildingQueue(buildingQue.PlanetID, buildingQue.UserID); DateTime UTC = DateTime.UtcNow; BuildingQue bq = new BuildingQue(); bq.BuildingID = buildingQue.BuildingID; bq.PlanetID = buildingQue.PlanetID; bq.Seconds = buildingQue.Seconds; bq.UserID = buildingQue.UserID; bq.MaterialCost = buildingQue.MaterialCost; bq.Type = 1; DateTime?maxCompletetionDate = BuildingsQueLeft.buildingQue.FindAll(x => x.Type == 1).Max(x => x.CompletetionDate); if (maxCompletetionDate.HasValue) { bq.CompletetionDate = maxCompletetionDate.Value.AddSeconds(buildingQue.Seconds.Value); } else { bq.CompletetionDate = UTC.AddSeconds(buildingQue.Seconds.Value); } PlanetDAL.AddBuildingQue(bq); return(pl); }
public static Fleet AddFleet(BuildingQue ship) { Fleet fl = new Fleet(); using (SqlConnection sqlConn = DatabaseHelper.GetConnection()) using (SqlCommand DBCmd = new SqlCommand("dbo.AddFleet", sqlConn)) { SqlDataReader sqlReader = default(SqlDataReader); DBCmd.CommandType = CommandType.StoredProcedure; DBCmd.Parameters.AddWithValue("@UserID", ship.UserID); DBCmd.Parameters.AddWithValue("@PlanetID", ship.PlanetID); sqlConn.Open(); sqlReader = DBCmd.ExecuteReader(CommandBehavior.CloseConnection); if (sqlReader.Read()) { fl.FleetID = sqlReader.GetInt32Nullable("FleetID"); } } AddFleetDetails(ship, fl.FleetID); List <Fleet> fls = GetUserFleets(ship.UserID, ship.PlanetID, fl.FleetID); fl = fls[0]; return(fl); }