SaveInstance() static private method

static private SaveInstance ( object instance, Controller controller, ArrayList errors, IDictionary &prop2Validation, bool create ) : void
instance object
controller Castle.MonoRail.Framework.Controller
errors System.Collections.ArrayList
prop2Validation IDictionary
create bool
return void
Exemplo n.º 1
0
        protected override void PerformActionProcess(Controller controller)
        {
            ARDataBinder binder = new ARDataBinder();

            object instance = binder.BindObject(Model.Type, "", controller.Params);

            SessionScope scope = new SessionScope();

            try
            {
                CommonOperationUtils.SaveInstance(instance, controller, errors, prop2Validation);

                scope.Dispose();

                controller.Redirect(controller.AreaName, controller.Name, "list" + Model.Type.Name);
            }
            catch (Exception ex)
            {
                errors.Add("Could not save " + Model.Type.Name + ". " + ex.Message);

                scope.Dispose(true);
            }

            if (errors.Count != 0)
            {
                controller.Context.Flash["errors"] = errors;
                controller.Redirect(controller.AreaName, controller.Name, "new" + Model.Type.Name);
            }
        }
Exemplo n.º 2
0
        protected override void PerformActionProcess(Controller controller)
        {
            ARDataBinder binder = new ARDataBinder();

            object idVal = CommonOperationUtils.ReadPkFromParams(controller, ObtainPKProperty());

            SessionScope scope = new SessionScope();

            try
            {
                object instance = SupportingUtils.FindByPK(Model.Type, idVal);

                binder.BindObjectInstance(instance, String.Empty, controller.Params, null, null);

                CommonOperationUtils.SaveInstance(instance, controller, errors, prop2Validation);

                scope.Dispose();

                controller.Redirect(controller.AreaName, controller.Name, "list" + Model.Type.Name);
            }
            catch (Exception ex)
            {
                errors.Add("Could not save " + Model.Type.Name + ". " + ex.Message);

                scope.Dispose(true);
            }

            if (errors.Count != 0)
            {
                controller.Context.Flash["errors"] = errors;

                NameValueCollection parameters = new NameValueCollection();
                parameters["id"] = idVal.ToString();

                controller.Redirect(controller.AreaName, controller.Name, "edit" + Model.Type.Name, parameters);
            }
        }