public ActionResult Terms(PropertyTermsInputModel input)
        {
            if (ModelState.IsValid)
            {
                var status = this.propertyAdapter.UpdatePropertyTerms(User.Identity.Name, input.ToBuilding());

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

                HandleErrors(status);
            }

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

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

            // return the model back with model state errors
            PropertyTermsModel model = new PropertyTermsModel()
            {
                Input = input,
                StepsAvailable = GetStepsAvailable(buildingVal.Result)
            };

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

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

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

            PropertyTermsModel model = new PropertyTermsModel();
            model.Input = new PropertyTermsInputModel(status.Result);
            model.StepsAvailable = GetStepsAvailable(status.Result);

            return View(model);
        }