/// <summary>
 /// Populates Weather Model List inside of ParkViewModel from List produced by DAO method.
 /// If degree is true, degrees will be displayed in Fahrenheit, Celsius if false.
 /// </summary>
 /// <param name="forecast"></param>
 /// <param name="vm"></param>
 /// <param name="degree"></param>
 private static void populateWeather(IList <Weather> forecast, ParkViewModel vm, bool degree)
 {
     foreach (Weather weather in forecast)
     {
         if (degree)
         {
             vm.DayValue        = weather.DayValue;
             vm.Low             = weather.Low;
             vm.High            = weather.High;
             vm.WeatherImg      = weather.Forecast.ToLower() + ".png";
             weather.WeatherImg = vm.WeatherImg;
             vm.FiveDayForecast.Add(weather);
         }
         else
         {
             weather.ConvertTempC();
             vm.DayValue        = weather.DayValue;
             vm.Low             = weather.Low;
             vm.High            = weather.High;
             vm.WeatherImg      = weather.Forecast.ToLower() + ".png";
             weather.WeatherImg = vm.WeatherImg;
             vm.FiveDayForecast.Add(weather);
         }
     }
 }
示例#2
0
        //eiditar park
        public ParkViewModel ToParkViewModel(Park park)
        {
            String c = "";

            var p = new ParkViewModel
            {
                Name        = park.Name,
                Id          = park.Id,
                Description = park.Description,
                Creation    = park.Creation,
                ImageUrl    = park.ImageUrl,
                Been        = park.Been,
                Extension   = park.Extension,
                Height      = park.Height,
                Temperature = park.Temperature,
                Flora       = park.Flora,
                Wildlife    = park.Wildlife,
                Communities = park.Communities,
                ManagerId   = park.Manager.Id,
            };

            park.Locations = _dataContext.Areas.Include(l => l.Location).Where(a => a.Park.Id == park.Id)?.ToList();

            if (park.Locations != null)
            {
                foreach (var a in park.Locations)
                {
                    c += $"{a.Location.Latitude},{a.Location.Longitude};";
                }

                p.Coordenadas = c.Trim();
            }

            return(p);
        }
        public IActionResult Index()
        {
            ParkViewModel vm = new ParkViewModel();

            vm.ParkList = _db2.GetParks();
            return(View(vm));
        }
示例#4
0
        public IActionResult Weather(string parkCode)
        {
            ParkViewModel parkSp = new ParkViewModel();

            parkSp.Weather = _weatherDAO.GetWeather(parkCode);
            return(GetAuthenticatedView("Weather", parkSp));
        }
        //crear parque
        public async Task <IActionResult> Create()
        {
            var user = await _dataContext.Users
                       .Include(ct => ct.Contents)
                       .FirstOrDefaultAsync(u => u.UserName.ToLower().Equals(User.Identity.Name.ToLower()));

            if (user == null)
            {
                return(NotFound());
            }

            var manager = await _dataContext.Managers
                          .Include(m => m.Parks)
                          .FirstOrDefaultAsync(m => m.User.UserName.ToLower().Equals(User.Identity.Name.ToLower()));

            if (manager == null)
            {
                return(NotFound());
            }

            //instanciamos la clase ParkViewModel que creamos en la carpeta models, para el modelo del parke
            var model = new ParkViewModel
            {
                ManagerId = manager.Id
            };

            return(View(model));
        }
        public IActionResult Detail(string park)
        {
            ParkViewModel newPark = parkDAO.GetPark(park);

            newPark.Weather          = weatherDAO.ParkWeather(park);
            newPark.ConversionChoice = GetPreferences();
            return(View(newPark));
        }
示例#7
0
        public void TempConverterTest()
        {
            ParkViewModel testVM = new ParkViewModel();

            Assert.AreEqual(0, testVM.ConvertTempC(32));
            Assert.AreEqual(100, testVM.ConvertTempC(212));
            Assert.AreEqual(-40, testVM.ConvertTempC(-40));
        }
示例#8
0
        public IActionResult Detail(string parkCode)
        {
            ParkViewModel vm = new ParkViewModel();

            vm.Park            = _db.GetPark(parkCode);
            vm.FiveDayForeCast = _db.GetFiveDayWeather(parkCode);
            return(GetAuthenticatedView("Detail", vm));
        }
示例#9
0
        public IActionResult Detail(string code)
        {
            ParkViewModel parks = new ParkViewModel();

            parks.Park    = _dao.GetPark(code);
            parks.Weather = _dao.GetWeatherForecast(code);

            return(GetAuthenticatedView("Detail", parks));
        }
示例#10
0
        public IActionResult Details(string parkCode)
        {
            ParkViewModel parkSp = new ParkViewModel();

            //parkSp.ParkCode = parkCode;
            parkSp.Park    = _parkDAO.GetPark(parkCode);
            parkSp.Weather = _weatherDAO.GetWeather(parkCode);

            return(GetAuthenticatedView("Details", parkSp));
        }
        /// <summary>
        /// populates ParkViewModel from Park model using DAO GetParks method
        /// </summary>
        /// <returns></returns>
        private ParkViewModel CreateViewModel()
        {
            ParkViewModel vm          = new ParkViewModel();
            var           listOfParks = _db.GetParks();

            foreach (Park park in listOfParks)
            {
                populatePark(vm, park);
            }
            return(vm);
        }
        /// <summary>
        /// Populates ParkViewModel park details and weather forecast with one specific park obtained by Park ID.
        /// Uses two DAO methods.  One to obtain specific park details, the other to obtain five day weather forecast of that park.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private ParkViewModel PopulateParkDetails(string id)
        {
            var           park     = _db.GetParkById(id);
            var           forecast = _db.GetWeatherById(id);
            ParkViewModel vm       = new ParkViewModel();

            populatePark(vm, park[0]);
            SetDegreeSymbol(forecast, vm);

            return(vm);
        }
 public ActionResult Edit(ParkViewModel model)
 {
     try
     {
         _masterServiceFacade.SavePark(model.CurrentPark);
         TempData["Success"] = true;
     }
     catch (Exception ex)
     {
         TempData["Success"] = false;
     }
     return(RedirectToAction("Park", "Master", new { area = "admin" }));
 }
示例#14
0
 public IActionResult AddPark(ParkViewModel model, Park newPark)
 {
     if (ModelState.IsValid)
     {
         _context.Parks.Add(newPark);
         _context.SaveChanges();
         return(RedirectToAction("Parks"));
     }
     else
     {
         ViewBag.errors = ModelState.Values;
         return(View("Parks"));
     }
 }
        /// <summary>
        /// Passes in a populated ParkViewModel to display all parks on the home page.
        /// If user is not authenticated, user is redirected to login screen.
        /// </summary>
        /// <returns>Home view for page</returns>
        public IActionResult Index()
        {
            IActionResult result = null;

            if (GetUserManager().IsAuthenticated)
            {
                ParkViewModel vm = CreateViewModel();
                result = View("Index", vm);
            }
            else
            {
                result = RedirectToAction("Login", "User");
            }
            return(result);
        }
        /// <summary>
        /// Sets Temp Symbol to °F or °C based on session data.
        /// Sets bool IsFarenheit to determine button display within Detail View.
        /// </summary>
        /// <param name="forecast"></param>
        /// <param name="vm"></param>
        private void SetDegreeSymbol(IList <Weather> forecast, ParkViewModel vm)
        {
            var degreeType = GetSessionData <bool>("IsFarenhiet");

            if (degreeType)
            {
                vm.IsFarenheit = true;
                populateWeather(forecast, vm, degreeType);
            }
            else
            {
                vm.IsFarenheit = false;
                vm.ConvertTempC();
                populateWeather(forecast, vm, degreeType);
            }
        }
        public IActionResult Detail(string id)
        {
            IActionResult result = null;

            if (GetUserManager().IsAuthenticated)
            {
                ParkViewModel vm = PopulateParkDetails(id);
                result = View("Detail", vm);
            }
            else
            {
                result = RedirectToAction("Login", "User");
            }

            return(result);
        }
示例#18
0
        /// <summary>
        /// Returns a list of all parks in the database
        /// </summary>
        /// <returns></returns>
        public List <ParkViewModel> GetAllParks()
        {
            List <ParkViewModel> parks = new List <ParkViewModel>();

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    string     sql = "SELECT * FROM park;";
                    SqlCommand cmd = new SqlCommand(sql, conn);

                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        ParkViewModel park = new ParkViewModel
                        {
                            ParkName                 = Convert.ToString(reader["parkName"]),
                            ParkCode                 = Convert.ToString(reader["parkCode"]),
                            ParkDescription          = Convert.ToString(reader["parkDescription"]),
                            State                    = Convert.ToString(reader["state"]),
                            Acreage                  = Convert.ToInt32(reader["acreage"]),
                            ElevationInFeet          = Convert.ToInt32(reader["elevationInFeet"]),
                            MilesOfTrail             = Convert.ToInt32(reader["milesOfTrail"]),
                            NumberOfCampsites        = Convert.ToInt32(reader["numberOfCampsites"]),
                            Climate                  = Convert.ToString(reader["climate"]),
                            YearFounded              = Convert.ToInt32(reader["yearFounded"]),
                            AnnualVisitors           = Convert.ToInt32(reader["annualVisitorCount"]),
                            InspirationalQuote       = Convert.ToString(reader["inspirationalQuote"]),
                            InspirationalQuoteSource = Convert.ToString(reader["inspirationalQuoteSource"]),
                            EntryFee                 = Convert.ToInt32(reader["entryFee"]),
                            NumberOfAnimalSpecies    = Convert.ToInt32(reader["numberOfAnimalSpecies"])
                        };
                        park.ImageSource = park.ParkCode + ".jpg";

                        parks.Add(park);
                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return(parks);
        }
示例#19
0
        public ActionResult Park(ParkViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var slot = _parkingSlotRepo.GetAll().Where(s => s.ID == model.Slot).First();
                    if (!(slot.Status == ParkingSlotStatus.Overloaded || slot.Status == ParkingSlotStatus.Disabled))
                    {
                        slot.Status = slot.Status == ParkingSlotStatus.Allocated
                            ? ParkingSlotStatus.Overloaded
                            : ParkingSlotStatus.Allocated;

                        _ticketStatusRepo.GetAll()
                        .First(s =>
                               s.TicketID == model.ID && s.Type == TicketStatusType.Dispatched).EndDate = DateTime.Now;

                        _ticketStatusRepo.InsertOnCommit(new TicketStatus
                        {
                            CreationDate = DateTime.Now,
                            StartDate    = DateTime.Now,
                            SlotId       = model.Slot,
                            TicketID     = model.ID,
                            Type         = TicketStatusType.Parked
                        });
                        _ticketStatusRepo.CommitChanges();

                        return(RedirectToAction("DispatchedList"));
                    }
                }
                catch
                {
                    ModelState.AddModelError("", "Can not park in selected slot.");
                }
            }
            else
            {
                ModelState.AddModelError("", "Invalid data.");
            }

            return(View(CreateParkViewModel(model.ID)));
        }
示例#20
0
        /// <summary>
        /// Get information for a single park
        /// </summary>
        /// <param name="parkCode">Primary key of the park in our database</param>
        /// <returns>One completed park model</returns>
        public ParkViewModel GetPark(string parkCode)
        {
            ParkViewModel park = new ParkViewModel();

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    string     sql = "SELECT * FROM park WHERE parkcode = @parkCode;";
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@parkCode", parkCode);

                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        park.ParkName                 = Convert.ToString(reader["parkName"]);
                        park.ParkCode                 = Convert.ToString(reader["parkCode"]);
                        park.ParkDescription          = Convert.ToString(reader["parkDescription"]);
                        park.State                    = Convert.ToString(reader["state"]);
                        park.Acreage                  = Convert.ToInt32(reader["acreage"]);
                        park.ElevationInFeet          = Convert.ToInt32(reader["elevationInFeet"]);
                        park.MilesOfTrail             = Convert.ToInt32(reader["milesOfTrail"]);
                        park.NumberOfCampsites        = Convert.ToInt32(reader["numberOfCampsites"]);
                        park.Climate                  = Convert.ToString(reader["climate"]);
                        park.YearFounded              = Convert.ToInt32(reader["yearFounded"]);
                        park.AnnualVisitors           = Convert.ToInt32(reader["annualVisitorCount"]);
                        park.InspirationalQuote       = Convert.ToString(reader["inspirationalQuote"]);
                        park.InspirationalQuoteSource = Convert.ToString(reader["inspirationalQuoteSource"]);
                        park.EntryFee                 = Convert.ToInt32(reader["entryFee"]);
                        park.NumberOfAnimalSpecies    = Convert.ToInt32(reader["numberOfAnimalSpecies"]);
                        park.ImageSource              = park.ParkCode + ".jpg";
                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return(park);
        }
        public ActionResult Edit(int?id)
        {
            ParkViewModel model = null;

            if (id.HasValue)
            {
                model             = new ParkViewModel();
                model.States      = _masterServiceFacade.GetStates();
                model.CurrentPark = _masterServiceFacade.GetParkById(id.Value);
            }
            else
            {
                model             = new ParkViewModel();
                model.CurrentPark = new Park {
                    IsActive = true
                };
                model.States = _masterServiceFacade.GetStates();
            }

            return(View(model));
        }
 /// <summary>
 /// fully populates ParkViewModel from Park model
 /// </summary>
 /// <param name="vm"></param>
 /// <param name="park"></param>
 private static void populatePark(ParkViewModel vm, Park park)
 {
     vm.Code              = park.Code;
     vm.ParkName          = park.ParkName;
     vm.State             = park.State;
     vm.acreage           = park.acreage;
     vm.elevationFt       = park.elevationFt;
     vm.MilesOfTrail      = park.MilesOfTrail;
     vm.NumOfCampsites    = park.NumOfCampsites;
     vm.Climate           = park.Climate;
     vm.YearFounded       = park.YearFounded;
     vm.AnnualVisitors    = park.AnnualVisitors;
     vm.InspirationQuote  = park.InspirationQuote;
     vm.InspirationSource = park.InspirationSource;
     vm.ParkDescription   = park.ParkDescription;
     vm.EntryFee          = park.EntryFee;
     vm.NumOfAnimals      = park.NumOfAnimals;
     vm.ParkImg           = park.Code.ToLower() + ".jpg";
     vm.Parks.Add(park);
     park.ParkImg = vm.ParkImg;
 }
        //sobre cargamos el metodo create para guardar pero le agregamos el modelo ParkViewModel
        public async Task <IActionResult> Create(ParkViewModel model)
        {
            if (ModelState.IsValid)
            {
                var path = string.Empty;

                if (model.ImageFile != null)
                {
                    //invocamos el metodo UploadImageAsync de IImageHelper
                    path = await _imageHelper.UploadImageAsync(model.ImageFile);
                }
                //creamos una instancia del objeto content y en el metodo ToContect nos devuelve el objeto Content
                //true porque es un nuevo contenido
                var park = await _converterHelper.ToParkAsync(model, path, true);

                _dataContext.Parks.Add(park);
                await _dataContext.SaveChangesAsync();

                return(RedirectToAction($"Index"));
            }
            return(View(model));
        }
示例#24
0
        //convierte un objeto de la clase ContentViewModel en la clase Content
        public async Task <Park> ToParkAsync(ParkViewModel model, string path, bool isNew)
        {
            var park = new Park
            {
                Name        = model.Name,
                Id          = isNew ? 0 : model.Id,
                Description = model.Description,
                Creation    = model.Creation,
                ImageUrl    = path,
                Been        = model.Been,
                Extension   = model.Extension,
                Height      = model.Height,
                Temperature = model.Temperature,
                Flora       = model.Flora,
                Wildlife    = model.Wildlife,
                Communities = model.Communities,
                Like        = 0,
                DisLike     = 0,
                Manager     = await _dataContext.Managers.FindAsync(model.ManagerId)
                              //Location = await _dataContext.Locations.FindAsync(model.LocationId)
            };

            return(park);
        }
示例#25
0
        //convierte un objeto de la clase ContentViewModel en la clase Content
        public async Task <Park> ToParkAsync(ParkViewModel model, string path, bool isNew)
        {
            var park = new Park
            {
                Name        = model.Name,
                Id          = isNew ? 0 : model.Id,
                Description = model.Description,
                Creation    = model.Creation,
                ImageUrl    = path,
                Been        = model.Been,
                Extension   = model.Extension,
                Height      = model.Height,
                Temperature = model.Temperature,
                Flora       = model.Flora,
                Wildlife    = model.Wildlife,
                Communities = model.Communities,
                Like        = 0,
                DisLike     = 0,
                Manager     = await _dataContext.Managers.FindAsync(model.ManagerId)
                              //Location = await _dataContext.Locations.FindAsync(model.LocationId)
            };

            /* if (model.latitud != null && model.longuitud != null)
             * {
             *   park.Locations = new List<Area> { new Area {
             *                    Id = isNew ? 0 :(int) model.Locations?.FirstOrDefault().Id ,
             *                    Location = new Location{
             *                       Id        = isNew ? 0:(int) model.Locations?.FirstOrDefault().Location.Id,
             *                       Latitude  = double.Parse(model.latitud,CultureInfo.InvariantCulture),
             *                       Longitude = double.Parse(model.longuitud,CultureInfo.InvariantCulture)
             *                                         },
             *                    Park = park }
             *               };
             * }
             */

            if (!isNew)
            {
                model.Locations = _dataContext.Areas.Include(l => l.Location).Where(a => a.Park.Id == model.Id).ToList();
            }

            if (model.Coordenadas != null)
            {
                var latlong = new List <String>();
                var areas   = new List <Area>();

                latlong = model.Coordenadas.Split(';').ToList();
                latlong.Remove("");
                int j = 1;

                foreach (var i in latlong)
                {
                    var a = isNew || j > model.Locations.Count() ?
                            new Area {
                        Id = 0, Park = park
                    }
                                            : model.Locations?.ElementAt(j - 1);



                    var cc = new List <String>();



                    cc = i.Split(',').ToList();

                    if (isNew || j > model.Locations.Count())
                    {
                        a.Location = new Location
                        {
                            Id        = 0,
                            Latitude  = double.Parse(cc.ElementAt(0)),
                            Longitude = double.Parse(cc.ElementAt(1))
                        };
                    }
                    else
                    {
                        a.Location           = model.Locations.ElementAt(j - 1)?.Location;
                        a.Location.Latitude  = double.Parse(cc.ElementAt(0));
                        a.Location.Longitude = double.Parse(cc.ElementAt(1));
                    }

                    areas.Add(a);


                    j++;
                }



                park.Locations = areas;
            }


            return(park);
        }