Beispiel #1
0
        public static ShowMapViewModel ToShowMapViewModel(this IEnumerable<Activity> activities)
        {
            ShowMapViewModel model = new ShowMapViewModel();
            model.Locations = new List<LocationModel>();

            foreach (Activity activity in activities)
            {
                if (activity.Latitude != 0 && activity.Longitude != 0)
                {
                    model.Locations.Add(new LocationModel
                    {
                        ActivityName = activity.Name,
                        ActivityAddress = activity.Address,
                        Latitude = activity.Latitude,
                        Longitude = activity.Longitude
                    });
                }
            }

            return model;
        }
        public ActionResult ShowMap(int? PackageId)
        {
            int packageId;

            if (!PackageId.HasValue)
            {
                return RedirectToAction("Search", "Packages");
            }
            else
            {
                packageId = PackageId.GetValueOrDefault();
            }

            ShowMapViewModel model = new ShowMapViewModel();
            string errorMessage = "Sorry, we are unable to display the locations for this package.";
            string noLocationsError = "Sorry, we do not have any map locations saved for this package.";

            try
            {
                Result<Package> packageResult = new Result<Package>();
                packageResult = packageService.GetPackageById(packageId);

                if (packageResult.Status == ResultEnum.Success && packageResult.Data.Status == PackageStatusEnum.Available)
                {
                    IEnumerable<Activity> activities = packageResult.Data.Activities;

                    model = activities.ToShowMapViewModel();

                    if (model.Locations.Count() < 1 || model.Locations.Count() > 3)
                    {
                        ModelState.AddModelError("ErrorMessage", noLocationsError);
                    }

                    return View(model);
                }
                else
                {
                    ModelState.AddModelError("ErrorMessage", errorMessage);
                    return View(model);
                }
            }
            catch
            {
                ModelState.AddModelError("ErrorMessage", errorMessage);
                return View(model);
            }

        #endregion
        }