Inheritance: PropertyAdd
        public PropertyBase PropertyEdit(PropertyBase newItem)
        {
            // Attempt to fetch the item
            var editedItem = ds.Properties.Find(newItem.Id);

            if (editedItem == null)
            {
                return null;
            }
            else
            {
                // Attempt to update the item
                ds.Entry(editedItem).CurrentValues.SetValues(newItem);
                ds.SaveChanges();

                return Mapper.Map<PropertyBase>(editedItem);
            }
        }
        public ActionResult Edit(int? id, PropertyBase newItem)
        {
            // Validate the input
            if (!ModelState.IsValid && id.GetValueOrDefault() == newItem.Id)
            {
                return View(newItem);
            }

            // Process the input
            var editedItem = m.PropertyEdit(newItem);

            if (editedItem == null)
            {
                return View(newItem);
            }
            else
            {
                return RedirectToAction("Details", new { id = editedItem.Id });
            }
        }