Пример #1
0
        protected IEnumerator CreateCampsiteOverTime(Campsite campsite)
        {
            //turn it into a proper campsite
            Location location = campsite.worlditem.GetOrAdd <Location>();

            location.State.Name.FileName   = "Campsite_" + Mathf.Abs(campsite.worlditem.GetHashCode()).ToString();
            location.State.Name.CommonName = "Campsite";
            location.State.Type            = "Campsite";
            location.State.IsCivilized     = true;
            location.State.IsDangerous     = false;
            location.State.Transform.CopyFrom(location.worlditem.tr);

            Revealable revealable = campsite.worlditem.GetOrAdd <Revealable>();

            revealable.State.IconName   = "MapIconCampsite";
            revealable.State.LabelStyle = MapLabelStyle.MouseOver;

            Visitable visitable = campsite.worlditem.GetOrAdd <Visitable>();

            Player.Local.Surroundings.Reveal(campsite.worlditem.StaticReference);
            WorldMap.MarkLocation(campsite.worlditem.StaticReference);

            campsite.State.HasBeenCreated  = true;
            campsite.State.CreatedByPlayer = true;
            campsite.RefreshFlag();
            yield return(null);                                   //wait a tick for the campsite to re-initialize

            WorldItems.Get.Save(campsite.worlditem, true);        //save state immediately - this will calculate stuff like chunk position

            yield break;
        }
Пример #2
0
 public void OnPlaceCampsite(Campsite campsite)
 {
     if (campsite == ActiveCampsite)
     {
         if (WaterSourceAvailable)
         {
             if (Player.Local.Surroundings.IsOutside)
             {
                 StartCoroutine(CreateCampsiteOverTime(campsite));
                 GUIManager.PostSuccess("Created new campsite");
             }
             else
             {
                 campsite.State.HasBeenCreated = false;
                 GUIManager.PostDanger("Couldn't create campsite: not outside");
             }
         }
         else
         {
             campsite.State.HasBeenCreated = false;
             GUIManager.PostDanger("Couldn't create campsite: no water sources nearby");
         }
     }
     StopPlacement();
 }
        public ActionResult DeleteConfirmed(int id)
        {
            Campsite campsite = db.Campsites.Find(id);

            db.Campsites.Remove(campsite);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        /// <summary>
        /// Iterate through each existing reservation and feed to base case comparison methods.
        /// If the new reservation will not fit with one existing reservation, returns false.
        /// </summary>
        /// <param name="inputJson">Input test object.</param>
        /// <param name="tmpCampSite">The current campsite we are trying to insert the new reservation into.</param>
        /// <returns>bool indicating if a new reservation will fit between all existing reservation for all given gap rules.</returns>
        public bool CompareCampsiteReservations(JsonTemplate inputJson, Campsite tmpCampSite)
        {
            var canFit = true;

            foreach (var res in tmpCampSite.CampsiteReservationList)
            {
                canFit = CompareInputRangeToReservationForEachGap(inputJson, res) && canFit;
            }
            return(canFit);
        }
 public ActionResult Edit([Bind(Include = "CampId,Description,Price,Type,Accomodates,Location")] Campsite campsite)
 {
     if (ModelState.IsValid)
     {
         db.Entry(campsite).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(campsite));
 }
        public ActionResult Create([Bind(Include = "CampId,Description,Price,Type,Accomodates,Location")] Campsite campsite)
        {
            if (ModelState.IsValid)
            {
                db.Campsites.Add(campsite);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(campsite));
        }
Пример #7
0
 public bool CanBePlacedOn(Campsite campsite, IItemOfInterest targetObject, Vector3 point, Vector3 normal, ref string errorMessage)
 {
     if (Vector3.Dot(normal, Vector3.down) < Orientation)
     {
         if (targetObject.IOIType == ItemOfInterestType.Scenery && targetObject.gameObject.CompareTag(Globals.TagGroundTerrain))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #8
0
        public void GetCampSiteAvailability_TotalCost_Test()
        {
            List <Campsite> output  = s.GetCampsitesByAvailability(connectionString, cg, fromDate, toDate);
            List <Campsite> output2 = s.GetCampsitesByAvailability(connectionString, cg2, fromDate, toDate);

            Campsite cs  = output[0];
            Campsite cs2 = output2[0];

            decimal result  = s.CalculateCostOfReservation(cs, fromDate, toDate, connectionString);
            decimal result2 = s.CalculateCostOfReservation(cs2, fromDate, toDate, connectionString);

            Assert.AreEqual(140.00m, Decimal.Round(result, 2));
            Assert.AreEqual(100.00m, Decimal.Round(result2, 2));
        }
        // GET: Campsites/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Campsite campsite = db.Campsites.Find(id);

            if (campsite == null)
            {
                return(HttpNotFound());
            }
            return(View(campsite));
        }
Пример #10
0
        public void CanCreateOnlyUniqueCampsites(int id, string name, bool canCreate)
        {
            // Setup
            var campsite = new Campsite()
            {
                Id   = id,
                Name = name,
            };

            // Test
            var success = service.CreateCampsite(campsite);

            // Assert
            Assert.Equal(success, canCreate);
        }
Пример #11
0
        private void DisplayCampgroundSites(int campgroundId, DateTime arriveDate, DateTime departDate)
        {
            _campsites.Clear();
            List <Campsite> campsites = _campsiteDAL.GetCampgroundSites(campgroundId, arriveDate, departDate);

            for (int index = 0; index < campsites.Count; index++)
            {
                int     numDays   = (int)(_departureDate - _arrivalDate).TotalDays + 1;
                decimal totalCost = CalculateCost(campgroundId, numDays);

                Campsite campsite = campsites[index];
                Console.WriteLine("{0, -10}{1, -20}{2, -20}{3, -20}{4, -20}{5, -20}", campsite.SiteNumber, campsite.MaxOccupancy, campsite.MaxRvLengthStr, campsite.IsAccessibleStr, campsite.UtilitiesStr, totalCost.ToString("c"));
                _campsites.Add(index + 1, campsite);
            }
        }
Пример #12
0
        public static void add(Campsite campsite)
        {
            Database.getInstance().open();
            SqlCommand query = new SqlCommand(ADD_SQL, Database.getInstance().getConnection());

            query.Parameters.AddWithValue("numero", campsite.Numero);
            query.Parameters.AddWithValue("zone", campsite.Zone);
            query.Parameters.AddWithValue("category", campsite.Category);
            query.Parameters.AddWithValue("nbPersonne", campsite.NbPersonne);
            query.Parameters.AddWithValue("prize", campsite.Prize);
            query.Parameters.AddWithValue("isReserved", campsite.IsReserved);
            query.Parameters.AddWithValue("isUnavailable", campsite.IsUnavailable);
            query.ExecuteNonQuery();
            Database.getInstance().close();
        }
 /// <summary>
 /// Add a list of reservations to each campsite.
 /// This makes it easier to keep track of campsites when traversing through reservations.
 /// </summary>
 /// <param name="inputJson">input test object.</param>
 private void BuildCampsiteReservationList(JsonTemplate inputJson)
 {
     foreach (var res in inputJson.Reservations)
     {
         try
         {
             Campsite tmpCampSite = inputJson.Campsites.Where(x => x.Id == res.CampsiteId).First();
             tmpCampSite.CampsiteReservationList.Add(res);
         }
         catch (Exception ex)
         {
             //couldn't find that campsite ID in our list of campsites
             throw new Exception("Invalid Campsite ID provided with reservation. " + ex.Message);
         }
     }
 }
Пример #14
0
        public void CampsiteDisplayTest()
        {
            Campsite myCampsite = new Campsite();

            myCampsite.SiteId         = 1;
            myCampsite.CampgroundId   = 1;
            myCampsite.SiteNumber     = 2;
            myCampsite.MaxOccupancy   = 6;
            myCampsite.Accessible     = "Y";
            myCampsite.MaxRVLength    = 30;
            myCampsite.Utilities      = "Y";
            myCampsite.ParkId         = 1;
            myCampsite.ParkName       = "Glacier";
            myCampsite.CampgroundName = "Running Brook";
            myCampsite.DailyFee       = 35.00M;

            //Console.WriteLine(myCampsite.ToString());
            //Console.ReadKey();
        }
Пример #15
0
        public int sitespots(Campsite campsite)
        {
            int           sites = 0;
            Db            db    = new Db();
            SqlConnection conn  = openconn();
            String        sql   = "SELECT AdvanceSite FROM [PermitDB].[dbo].[Campsites]  where CampsiteId=@campsiteid";
            SqlCommand    cmd   = new SqlCommand(sql, conn);

            cmd.Parameters.AddWithValue("@campsiteId", campsite.CampsiteId);
            SqlDataReader rdr = cmd.ExecuteReader();

            if (rdr.Read())
            {
                sites = Convert.ToInt32(rdr["AdvanceSite"]);
            }
            rdr.Close();
            db.closeconn(conn);
            return(sites);
        }
Пример #16
0
        public Campsite getcampsite(int nightid)
        {
            Db            db       = new Db();
            Campsite      campsite = null;
            SqlConnection conn     = openconn();
            String        sql      = "SELECT * FROM Campsites where campsiteId=@nightid";
            SqlCommand    cmd      = new SqlCommand(sql, conn);

            cmd.Parameters.AddWithValue("@nightid", nightid);
            SqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                campsite = new Campsite(Convert.ToInt32(rdr["CampsiteId"]), rdr["Name"].ToString(), Convert.ToDateTime(rdr["OpenDate"]), Convert.ToDateTime(rdr["CloseDate"]), Convert.ToInt32(rdr["TotalSite"]), Convert.ToInt32(rdr["AdvanceSite"]), Convert.ToInt32(rdr["Stock"]), Convert.ToInt32(rdr["Tents"]), Convert.ToInt32(rdr["GroupSize"]));
            }
            rdr.Close();
            db.closeconn(conn);
            return(campsite);
        }
Пример #17
0
    void ReadCSVFile()
    {
        //from Resources folder load data
        TextAsset Campsite_data = Resources.Load <TextAsset>(data_name);

        //string[] data = Campsite_data.text.Split(new string[] { "!!!!"+'"'},StringSplitOptions.RemoveEmptyEntries);//split for each line…...
        string[]  data         = Campsite_data.text.Split(new char[] { '\n' });
        TextAsset excerpt_data = Resources.Load <TextAsset>("excerpt");

        string[] excerpt = excerpt_data.text.Split(new string[] { "!!!!" + '"' }, StringSplitOptions.RemoveEmptyEntries);//split for each line…...

        /*StreamReader inp_stm = new StreamReader("Assets/Resorces/data.csv");
         * while (!inp_stm.EndOfStream)
         * {
         *  string inp_ln = inp_stm.ReadLine();
         *
         *  stringList.Add(inp_ln);
         * }
         *
         * inp_stm.Close();
         *
         * parseList();*/
        Debug.Log(excerpt[2]);
        for (int i = 0; i < data.Length - 1; i++)//when there is no header i=0
        {
            Campsite campsite = new Campsite();
            string[] row      = data[i].Split(new char[] { ',' }, 4);
            //string[] row = stringList[i].Split(new char[] { ',' });
            campsite.lat = row[0];
            campsite.lng = row[1];
            float.TryParse(row[2], out campsite.rating);
            Campsites.Add(campsite);
            //Debug.Log('1');
        }
        for (int i = 0; i < excerpt.Length - 1; i++)//when there is no header i=0
        {
            Campsite campsite = Campsites[i];
            campsite.excerpt = excerpt[i];
            //Debug.Log(campsite.excerpt);
        }
    }
Пример #18
0
        public static Campsite get(int id)
        {
            Campsite campsite = null;

            Database.getInstance().open();

            SqlCommand query = new SqlCommand(GET_SQL, Database.getInstance().getConnection());

            query.Parameters.AddWithValue("id", id);

            SqlDataReader reader = query.ExecuteReader();

            if (reader.Read())
            {
                campsite = new Campsite((int)reader["campsite_id"], (int)reader["campsite_numero"], reader["campsite_zone"].ToString(), reader["campsite_category"].ToString(), (int)reader["campsite_nbPersonne"], (Decimal)reader["campsite_prize"], (bool)reader["campsite_isReserved"], (bool)reader["campsite_isUnavailable"]);
            }
            reader.Close();
            Database.getInstance().close();

            return(campsite);
        }
 public bool CreateCampsite(Campsite campsite)
 {
     return(campsites.Add(campsite));
 }
Пример #20
0
        public void SearchCampgroundReservations(string park, string campground)
        {
            List <Campsite> avaiablereservations = new List <Campsite>();
            bool            validInput           = false;
            DateTime        arrivalDate          = DateTime.MinValue;
            DateTime        departureDate        = DateTime.MinValue;

            bool SearchReservations = true;

            do
            {
                do
                {
                    Console.Write("What is the arrival date? (mm/dd/yyyy): ");
                    string input = Console.ReadLine();
                    try
                    {
                        arrivalDate = DateTime.Parse(input);
                        validInput  = true;
                    }
                    catch
                    {
                        Console.WriteLine("Invalid Input (mm/dd/yyyy): ");
                    }
                } while (validInput == false);

                validInput = false;
                do
                {
                    Console.Write("What is the departure date? (mm/dd/yyyy): ");
                    string input = Console.ReadLine();
                    try
                    {
                        departureDate = DateTime.Parse(input);
                        validInput    = true;
                    }
                    catch
                    {
                        Console.WriteLine("Invalid Input (mm/dd/yyyy): ");
                    }
                } while (validInput == false);

                ReservationSqlDAL reservationSqlDAL = new ReservationSqlDAL();
                avaiablereservations = reservationSqlDAL.SearchForReservation(park, campground, arrivalDate, departureDate);
                if (avaiablereservations.Count == 0)
                {
                    Console.WriteLine("No available sites\n");
                    validInput = false;
                    do
                    {
                        try
                        {
                            Console.Write("Would you like to enter another date (Y/N): ");
                            char anotherSearch;
                            anotherSearch = Convert.ToChar(Console.ReadLine());
                            if (char.ToUpper(anotherSearch) == 'Y')
                            {
                                validInput         = true;
                                SearchReservations = true;
                            }
                            else if (char.ToUpper(anotherSearch) == 'N')
                            {
                                validInput         = true;
                                SearchReservations = false;
                                return;
                            }
                        }
                        catch
                        {
                            Console.WriteLine("\nPlease Enter (Y/N)");
                        }
                    } while (validInput == false);
                }
                else
                {
                    SearchReservations = false;
                }
            } while (SearchReservations == true);


            Console.WriteLine("\nResults Matching Your Search Criteria");
            Console.WriteLine("Site No.".PadRight(11) + "Max Occup.".PadRight(11) + "Accessible".PadRight(13) + "Max RV Length".PadRight(15) + "Utility".PadRight(9) + "Cost");

            foreach (Campsite campsite in avaiablereservations)
            {
                TimeSpan difference = departureDate - arrivalDate;

                Console.WriteLine(
                    Convert.ToString(campsite.SiteNumber).PadRight(11) +
                    Convert.ToString(campsite.MaxOccupancy).PadRight(11) +
                    Convert.ToString(campsite.Accessible).PadRight(13) +
                    Convert.ToString(campsite.MaxRvLength).PadRight(15) +
                    Convert.ToString(campsite.Utilities).PadRight(9) +
                    (campsite.DailyFee * (difference.Days + 1)).ToString("C2")
                    );
            }

            validInput = false;
            Campsite selectedCampsite = new Campsite();

            Console.WriteLine("");
            do
            {
                int userinput = 0;
                try
                {
                    Console.Write("Which site should be reserved (enter 0 to cancel): ");
                    userinput = int.Parse(Console.ReadLine());
                    if (userinput == 0)
                    {
                        return;
                    }
                    foreach (Campsite campsite in avaiablereservations)
                    {
                        if (campsite.SiteNumber == userinput)
                        {
                            validInput       = true;
                            selectedCampsite = campsite;
                        }
                    }
                    if (validInput == false)
                    {
                        Console.WriteLine("Invalid Site Number\n");
                    }
                }
                catch (FormatException e)
                {
                    Console.WriteLine("Invalid Input\n");
                }
            } while (validInput == false);
            Console.Write("What name should the reservation be made under): ");
            string name = Console.ReadLine();

            MakeNewReservation(name, selectedCampsite.SiteId, arrivalDate, departureDate);
            Console.WriteLine("");
        }
Пример #21
0
        /// <summary>
        /// Collects the site to reserve
        /// </summary>
        private int GetCampsiteID()
        {
            Console.WriteLine();
            Console.Write("Which site should be reserved (enter 0 to cancel)? ");

            int?     desiredCampsite          = null;
            string   temporaryDesiredCampsite = "";
            Campsite chosenSite = null;

            // Generate exception to catch invalid input and prompt user to stop being ridiculous
            Exception invalidInput = new Exception();

            // Repeat as long as we have not received a response that represents a campsite
            while (chosenSite == null)
            {
                temporaryDesiredCampsite = Console.ReadLine();

                try
                {
                    // If user has entered a non-integer character, we cannot use it to find a campsite,
                    // So we throw an exception
                    if (!Regex.IsMatch(temporaryDesiredCampsite, @"^[0-9]+$"))
                    {
                        // throw and catch
                        throw invalidInput;
                    }
                    else
                    {
                        // If user has entered a character representing an integer,
                        // We parse it as our desired campsite selection
                        desiredCampsite = int.Parse(temporaryDesiredCampsite);

                        if (desiredCampsite == 0)
                        {
                            Console.WriteLine();
                            Console.WriteLine("Returning to previous menu...");
                            Thread.Sleep(1000);
                            Console.Clear();
                            GetCampgroundsByPark();

                            // This lets us close the method if user selects 0
                            return((int)desiredCampsite);
                        }

                        // We check through campsite numbers to find a hit
                        for (int i = 0; i < campsites.Count; i++)
                        {
                            if (desiredCampsite == campsites[i].SiteNumber)
                            {
                                // If a hit is found, we use that campsite as our selection
                                chosenSite = campsites[i];
                                break;
                            }
                            // We check the next campsite if a hit is not found
                            else
                            {
                                continue;
                            }
                        }

                        // If there are no hits in list, we throw an exception and re-loop process
                        if (chosenSite == null)
                        {
                            throw invalidInput;
                        }
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Invalid site selected. Please select a valid site.");
                    Thread.Sleep(1000);
                    ClearCurrentConsoleLine();
                    ClearCurrentConsoleLine();
                    Console.Write("Which site should be reserved (enter 0 to cancel)? ");
                }
            }

            // Return ID of selected campsite
            return(chosenSite.SiteID);
        }
Пример #22
0
 public void OnEquipCampsite(Campsite activeCampsite)
 {
     AvailableWaterSources.Clear();
     ActiveCampsite = activeCampsite;
     enabled        = true;
 }
Пример #23
0
        private static void CreateReservationMenu(string selectedCampground, List <Campground> campgrounds,
                                                  Campground campground, DateTime arrival, DateTime departure,
                                                  string connectionString)
        {
            PrintMenuDoubleSpaced(new[] { campground.Name + " Campground" });

            PrintTrees();
            Console.WriteLine();
            List <Campsite> availableCampsites = campsiteDAL.GetCampsitesByAvailability(connectionString, campground, arrival, departure);

            if (availableCampsites.Count == 0)
            {
                Console.Clear();
                PrintMenuDoubleSpaced(new[] { "I'm sorry, there are no available dates for your selected visit, please select again..." });
                CheckReservationAvailabilityMenu(campgrounds, selectedCampground);
            }
            Console.SetCursorPosition((Console.WindowWidth - 80) / 2, Console.CursorTop);
            Console.WriteLine("{0, -15}{1, -15}{2, -15}{3, -15}{4, -15}{5, -15}", $"Site No.", $"Max Occup.", $"Accessible?", $"Max RV Length", $"Utility", $"Cost");
            Console.WriteLine();

            foreach (var site in availableCampsites)
            {
                decimal totalCost = campsiteDAL.CalculateCostOfReservation(site, arrival, departure, connectionString);
                Console.SetCursorPosition((Console.WindowWidth - 80) / 2, Console.CursorTop);
                Console.WriteLine("{0, -15}{1, -15}{2, -15}{3, -15}{4, -15}{5, -15}", $"{site.SiteID}", $"{site.MaxOccupancy}", $"{site.Accessible}", $"{site.MaxRvLength}", $"{site.Utilities}", $"{totalCost.ToString("c")}");
            }
            Console.WriteLine();

            Campsite reservationSite = new Campsite();//create a new campsite so that the user can book their stay

            PrintTreesBottom();
            int userSelectedSiteID = CLIHelper.GetInteger("What site should be reserved?(To Return to the Main Menu press (0))");

            //first verify that the site_id entered exists from the list provided to the user only!
            bool exists = availableCampsites.Any(x => x.SiteID == userSelectedSiteID);

            if (userSelectedSiteID == 0)
            {
                Console.Clear();
                MainMenu();
            }
            else if (exists)
            {
                reservationSite.SiteID = userSelectedSiteID;
                //book a reservation based on the site_id
            }
            else
            {
                Console.Clear();
                Console.WriteLine("That is not a valid option, please select from the choices below...");
                CreateReservationMenu(selectedCampground, campgrounds, campground, arrival, departure, connectionString);
            }

            string nameOfReservation = CLIHelper.GetString("What name should the reservation be placed under?");

            if (availableCampsites.Any(x => x.SiteID == userSelectedSiteID))
            {
                campsiteDAL.CreateReservation(reservationSite.SiteID, arrival, departure, nameOfReservation, connectionString);

                Console.WriteLine($"The reservation has been created and the reservation id is " +
                                  $"{campsiteDAL.GetReservationID(reservationSite.SiteID, connectionString)}");
                Console.WriteLine("Press Enter to Return to the Main Menu");
                Console.ReadLine();
                MainMenu();
            }
            else
            {
                // if the site has not been reserved on the provided dates the reservation will be created
                Console.WriteLine("This site is already reserved during the dates provided");
                CheckReservationAvailabilityMenu(campgrounds, selectedCampground);
            }
        }