public ActionResult List(Listing input)
        {
            if (ModelState.IsValid)
            {
                var status = this.propertyAdapter.UpdatePropertyListingInfo(input);

                if (status.StatusCode == 200)
                    return RedirectToAction("terms", new { id = input.BuildingId });

                HandleErrors(status);
            }

            var buildingVal = this.propertyAdapter.GetPropertyListingInfo(input.BuildingId, User.Identity.Name);

            if (buildingVal.StatusCode != 200)
                return this.NotFoundException();

            PropertyListModel model = new PropertyListModel()
            {
                Input = input,
                StepsAvailable = GetStepsAvailable(buildingVal.Result),
                UserContacts = buildingVal.Result.User.ContactInfos,
                TemporaryOrderId = buildingVal.Result.TemporaryOrderId
            };

            if (input.BuildingAmenities == null)
                input.BuildingAmenities = new List<BuildingAmenity>();

            if (input.CustomAmenities == null)
                input.CustomAmenities = new List<CustomAmenity>();

            return View(model);
        }
        public ActionResult List(long? id)
        {
            if (!id.HasValue)
                return this.NotFoundException();

            var status = this.propertyAdapter.GetPropertyListingInfo(id.Value, User.Identity.Name);

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

            PropertyListModel model = new PropertyListModel(status.Result);

            model.StepsAvailable = GetStepsAvailable(status.Result);

            return View(model);
        }