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