public ResourceEdit(Resource resource)
        {
            InitializeComponent();

              // store object reference
              _resource = resource;
        }
        public ActionResult Edit(int id, Resource resource, FormCollection collection)
        {
            if (!resource.IsValid || !ModelState.IsValid)
            {
                return View(ToViewModel(resource));
            }

            resource.Save();

            return RedirectToAction("Index");
        }
        public ActionResult Create(Resource resource, FormCollection collection)
        {
            if (!resource.IsValid || !ModelState.IsValid)
            {
                return View(ToViewModel(resource));
            } 

            resource = resource.Save();

            return RedirectToAction("Edit", new { id = resource.Id });
        }
 public ResourceViewModel(Resource resource, RoleList roleList, ProjectList projectList)
 {
     Resource = resource;
     RoleList = roleList;
     ProjectList = projectList;
 }
        private void RebindUI(bool saveObject, bool rebind)
        {
            // disable events
              this.ResourceBindingSource.RaiseListChangedEvents = false;
              this.AssignmentsBindingSource.RaiseListChangedEvents = false;
              try
              {
            // unbind the UI
            UnbindBindingSource(this.AssignmentsBindingSource, saveObject, false);
            UnbindBindingSource(this.ResourceBindingSource, saveObject, true);
            this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource;

            // save or cancel changes
            if (saveObject)
            {
              _resource.ApplyEdit();
              try
              {
            _resource = _resource.Save();
              }
              catch (Csla.DataPortalException ex)
              {
            MessageBox.Show(ex.BusinessException.ToString(),
              "Error saving", MessageBoxButtons.OK,
              MessageBoxIcon.Exclamation);
              }
              catch (Exception ex)
              {
            MessageBox.Show(ex.ToString(),
              "Error Saving", MessageBoxButtons.OK,
              MessageBoxIcon.Exclamation);
              }
            }
            else
              _resource.CancelEdit();
              }
              finally
              {
            // rebind UI if requested
            if (rebind)
              BindUI();

            // restore events
            this.ResourceBindingSource.RaiseListChangedEvents = true;
            this.AssignmentsBindingSource.RaiseListChangedEvents = true;

            if (rebind)
            {
              // refresh the UI if rebinding
              this.ResourceBindingSource.ResetBindings(false);
              this.AssignmentsBindingSource.ResetBindings(false);
            }
              }
        }
 public ActionResult Edit(int id, Resource resource)
 {
     return View(ToViewModel(resource));
 }
 public ActionResult Create(Resource resource)
 {
     return View(ToViewModel(resource));
 } 
        //
        // GET: /Resources/Details/5

        public ActionResult Details(int id, Resource resource)
        {
            return View(ToViewModel(resource));
        }
 private ResourceViewModel ToViewModel(Resource resource)
 {
     return new ResourceViewModel(resource, RoleList.GetList(), ProjectList.GetProjectList());
 }