コード例 #1
0
        // GET: ListingController
        public ActionResult Index()
        {
            var currentUserId = _userManager.GetUserId(User);
            var allListings   = _listingService.GetUserApartment(currentUserId);

            var listingResult = allListings.Select(x => new ListingModel
            {
                ListingId        = x.Id,
                Category         = x.Category.Name,
                Description      = x.Description,
                DatePosted       = _listingService.ConvertToTimeAgo(x.DateCreated),
                NoOfBaths        = x.NoOfBaths,
                NoOfBedrooms     = x.NoOfBedrooms,
                OffStreetParking = x.OffStreetParking,
                LaundryAvailable = x.LaundryAvailable,
                PricePerMonth    = x.PricePerMonth,
                ImageUrl         = _listingService.GetListingImage(x.Id)
            });

            var model = new ListingIndexModel
            {
                Assets = listingResult
            };

            return(View(model));
        }
コード例 #2
0
        public ActionResult Index(long ad, Guid?token)
        {
            if (!User.Identity.IsAuthenticated && token.HasValue)
            {
                var user = authAdapter.ValidateAuthToken(token.Value);

                if (user.StatusCode == 200)
                {
                    FormsAuthentication.SetAuthCookie(user.Result.Username, true);
                }
            }

            var status = this.listingAdapter.GetListing(ad);

            // this is ok because the adapter will return 0 if count cannot
            // be retrieved
            var viewCount = this.listingAdapter.GetListingViews(ad).Result;

            var userHasSaved = this.listingAdapter.ListingWasSavedBy(ad, User.Identity.Name).Result;

            var model = new ListingIndexModel();

            model.Listing      = status.Result;
            model.ListingViews = viewCount;
            model.UserHasSaved = userHasSaved;

            return(View(model));
        }
コード例 #3
0
        public ActionResult Index(long?ad, Guid?token)
        {
            if (!ad.HasValue)
            {
                return(this.NotFoundException());
            }

            RedisPublisher.Publish("token", "Listing page " + ad.Value + " token: " + token.HasValue.ToString());

            if (!User.Identity.IsAuthenticated && token.HasValue)
            {
                var user = authAdapter.ValidateAuthToken(token.Value);

                if (user.StatusCode == 200)
                {
                    CustomAuthentication.SetAuthCookie(user.Result.Username, user.Result.UserId, true);
                }

                return(Redirect("/ksl/listing/index?ad=" + ad.Value));
            }

            var status = this.listingAdapter.GetListing(ad.Value);

            // this is ok because the adapter will return 0 if count cannot
            // be retrieved
            var viewCount = this.listingAdapter.GetListingViews(ad.Value).Result;

            var userHasSaved = this.listingAdapter.ListingWasSavedBy(ad.Value, User.Identity.Name).Result;

            if (status.StatusCode != 200)
            {
                return(this.NotFoundException());
            }

            this.listingAdapter.IncrementListingViews(ad.Value);

            var model = new ListingIndexModel();

            model.Listing      = status.Result;
            model.ListingViews = viewCount;
            model.UserHasSaved = userHasSaved;

            //set the login url to Ksl
            model.LoginUrl = string.Format("{0}{1}?login_forward=",
                                           Rentler.Web.Config.KslDomain,
                                           Rentler.Web.Config.KslLoginPath);

            model.LoginUrl += Url.Encode(string.Format("{0}{1}{2}",
                                                       Rentler.Web.Config.KslDomain,
                                                       Rentler.Web.Config.KslListingPath,
                                                       status.Result.BuildingId));

            return(View(model));
        }
コード例 #4
0
        public ActionResult Quick(long id)
        {
            var status = this.listingAdapter.GetListing(id);

            if (status.StatusCode != 200)
            {
                return(HttpNotFound());
            }

            // this is ok because the adapter will return 0 if count cannot
            // be retrieved
            var viewCount    = this.listingAdapter.GetListingViews(id).Result;
            var userHasSaved = this.listingAdapter.ListingWasSavedBy(id, User.Identity.Name).Result;

            var model = new ListingIndexModel();

            model.Listing      = status.Result;
            model.ListingViews = viewCount;
            model.UserHasSaved = userHasSaved;

            return(PartialView("ListingDetails", model));
        }
コード例 #5
0
        /// <summary>
        /// View a listing by its id.
        /// </summary>
        /// <param name="id">The id of the listing to view.</param>
        /// <returns>The listing page</returns>
        //disabled until we can separately cache ajax/straight listings
        //[UnAuthenticatedCache(Duration = 3600)]
        public ActionResult Index(long?id)
        {
            if (!id.HasValue)
            {
                return(this.NotFoundException());
            }

            var status = this.listingAdapter.GetListing(id.Value);

            if (status.StatusCode != 200)
            {
                return(this.NotFoundException());
            }

            this.listingAdapter.IncrementListingViews(id.Value);

            // this is ok because the adapter will return 0 if count cannot
            // be retrieved
            var viewCount    = this.listingAdapter.GetListingViews(id.Value).Result;
            var userHasSaved = this.listingAdapter.ListingWasSavedBy(id.Value, User.Identity.Name).Result;

            var model = new ListingIndexModel();

            model.Listing      = status.Result;
            model.ListingViews = viewCount;
            model.UserHasSaved = userHasSaved;

            //set the login url to Rentler
            model.LoginUrl = "/account/login?ReturnUrl=/listing/" + status.Result.BuildingId;

            if (Request.IsAjaxRequest())
            {
                return(PartialView("ListingDetails", model));
            }

            return(View(model));
        }