internal static int GetPageSize(ObjectAndControlData controlData) { if (controlData.DataDict.ContainsKey(IdHelper.PageSizeKey)) { return int.Parse(controlData.DataDict[IdHelper.PageSizeKey]); } if (!string.IsNullOrEmpty(controlData.PageSize)) { return int.Parse(controlData.PageSize); } INakedObjectAction action = controlData.GetAction(); return action != null ? action.GetFacet<IPageSizeFacet>().Value : 0; }
internal void AddAttemptedValues(ObjectAndControlData controlData) { INakedObjectAction action = controlData.GetAction(); var form = controlData.Form; foreach (INakedObjectActionParameter parm in action.Parameters) { string name = IdHelper.GetParameterInputId(action, parm); ValueProviderResult vp = form.GetValue(name); string[] values = vp == null ? new string[] {} : (string[]) vp.RawValue; if (parm.IsCollection) { // handle collection mementos if (parm.IsMultipleChoicesEnabled || !CheckForAndAddCollectionMemento(name, values, controlData)) { var itemSpec = parm.Specification.GetFacet<ITypeOfFacet>().ValueSpec; var itemvalues = values.Select(v => itemSpec.IsParseable ? (object) v : FrameworkHelper.GetNakedObjectFromId(v).GetDomainObject()).ToList(); if (itemvalues.Any()) { AddAttemptedValue(name, PersistorUtils.CreateAdapter(itemvalues)); } } } else { string value = values.Any() ? values.First() : ""; if (!string.IsNullOrEmpty(value)) { AddAttemptedValue(name, parm.Specification.IsParseable ? (object) value : FilterCollection(FrameworkHelper.GetNakedObjectFromId(value), controlData)); } } } }
protected string DisplaySingleProperty(ObjectAndControlData controlData, IDictionary<string, string> data) { if (Request.IsAjaxRequest()) { if (controlData.SubAction == ObjectAndControlData.SubActionType.Redisplay) { IEnumerable<INakedObjectAssociation> assocs = controlData.GetNakedObject().Specification.Properties.Where(p => p.IsCollection); INakedObjectAssociation item = assocs.SingleOrDefault(a => data.ContainsKey(a.Id)); return item == null ? null : item.Id; } if (controlData.ActionId == null) { IEnumerable<INakedObjectAssociation> assocs = controlData.GetNakedObject().Specification.Properties.Where(p => !p.IsCollection); INakedObjectAssociation item = assocs.SingleOrDefault(a => data.ContainsKey(a.Id)); return item == null ? null : item.Id; } { IEnumerable<INakedObjectActionParameter> parms = controlData.GetAction().Parameters; INakedObjectActionParameter item = parms.SingleOrDefault(p => data.ContainsKey(p.Id)); return item == null ? null : item.Id; } } return null; }
private ActionResult ApplyAction(ObjectAndControlData controlData) { var targetNakedObject = FilterCollection(controlData.GetNakedObject(Facade), controlData); var targetAction = controlData.GetAction(Facade); CheckConcurrency(targetNakedObject, null, controlData, (z, x, y) => IdHelper.GetConcurrencyActionInputId(x, targetAction, y)); if (targetNakedObject.IsNotPersistent) { RefreshTransient(targetNakedObject, controlData.Form); } // do after any parameters set by contributed action so this takes priority SetSelectedParameters(targetAction); var ac = GetParameterValues(targetAction, controlData); ActionResultContextFacade ar; if (targetNakedObject.Specification.IsCollection && !targetNakedObject.Specification.IsParseable) { var oids = targetNakedObject.ToEnumerable().Select(no => Facade.OidTranslator.GetOidTranslation(no)).ToArray(); var spec = targetNakedObject.ElementSpecification; ar = Facade.ExecuteListAction(oids, spec, targetAction.Id, ac); } else { var oid = Facade.OidTranslator.GetOidTranslation(targetNakedObject); ar = Facade.ExecuteObjectAction(oid, targetAction.Id, ac); } if (!HasError(ar)) { targetNakedObject.SetIsNotQueryableState(targetAction.IsContributed); return AppropriateView(controlData, GetResult(ar), targetAction); } foreach (var parm in ar.ActionContext.VisibleParameters) { if (!string.IsNullOrEmpty(parm.Reason)) { ModelState.AddModelError(IdHelper.GetParameterInputId(targetAction, parm.Parameter), parm.Reason); } } if (!(string.IsNullOrEmpty(ar.ActionContext.Reason))) { ModelState.AddModelError("", ar.ActionContext.Reason); } var property = DisplaySingleProperty(controlData, controlData.DataDict); return View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel {ContextObject = targetNakedObject.GetDomainObject(), ContextAction = targetAction, PropertyName = property}); }
private ActionResult SelectOnAction(ObjectAndControlData controlData) { var nakedObjectAction = controlData.GetAction(Facade); var contextNakedObject = FilterCollection(controlData.GetNakedObject(Facade), controlData); return SelectSingleItem(contextNakedObject, nakedObjectAction, controlData, controlData.DataDict); }
public virtual ActionResult Action(ObjectAndControlData controlData) { var no = controlData.GetNakedObject(Facade); var action = controlData.GetAction(Facade); return View("ActionDialog", new FindViewModel { ContextObject = no.GetDomainObject(), ContextAction = action }); }
private ActionResult InitialAction(ObjectAndControlData controlData) { var nakedObject = controlData.GetNakedObject(Facade); var nakedObjectAction = controlData.GetAction(Facade); CheckConcurrency(nakedObject, null, controlData, (z, x, y) => IdHelper.GetConcurrencyActionInputId(x, nakedObjectAction, y)); return ExecuteAction(controlData, nakedObject, nakedObjectAction); }
private ActionResult ApplyAction(ObjectAndControlData controlData) { var targetNakedObject = FilterCollection(controlData.GetNakedObject(), controlData); var targetAction = controlData.GetAction(); CheckConcurrency(targetNakedObject, null, controlData, (z, x, y) => IdHelper.GetConcurrencyActionInputId(x, targetAction, y)); if (targetNakedObject.IsNotPersistent()) { RefreshTransient(targetNakedObject, controlData.Form); } // do after any parameters set by contributed action so this takes priority SetSelectedParameters(targetAction); if (ValidateParameters(targetNakedObject, targetAction, controlData)) { targetNakedObject.SetNotQueryable(targetAction.IsContributedMethod); var parms = GetParameterValues(targetAction, controlData); return AppropriateView(controlData, Execute(targetAction, targetNakedObject, parms.ToArray()), targetAction); } var property = DisplaySingleProperty(controlData, controlData.DataDict); return View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel { ContextObject = targetNakedObject.Object, ContextAction = targetAction, PropertyName = property }); }
private ActionResult SelectOnAction(ObjectAndControlData controlData) { INakedObjectAction nakedObjectAction = controlData.GetAction(); INakedObject contextNakedObject = FilterCollection(controlData.GetNakedObject(), controlData); return SelectSingleItem(contextNakedObject, nakedObjectAction, controlData, controlData.DataDict); }
private ActionResult InitialAction(ObjectAndControlData controlData) { CheckConcurrency(controlData.GetNakedObject(), null, controlData, (z, x, y) => IdHelper.GetConcurrencyActionInputId(x, controlData.GetAction(), y)); return ExecuteAction(controlData, controlData.GetNakedObject(), controlData.GetAction()); }
public virtual ActionResult Action(ObjectAndControlData controlData) { return View("ActionDialog", new FindViewModel { ContextObject = controlData.GetNakedObject().Object, ContextAction = controlData.GetAction() }); }
internal int GetPageSize(ObjectAndControlData controlData) { if (controlData.DataDict.ContainsKey(IdConstants.PageSizeKey)) { return int.Parse(controlData.DataDict[IdConstants.PageSizeKey]); } if (!string.IsNullOrEmpty(controlData.PageSize)) { return int.Parse(controlData.PageSize); } var action = controlData.GetAction(Facade); return action != null ? action.PageSize : 0; }
protected string DisplaySingleProperty(ObjectAndControlData controlData, IDictionary<string, string> data) { if (Request.IsAjaxRequest()) { var nakedObject = controlData.GetNakedObject(Facade); if (controlData.SubAction == ObjectAndControlData.SubActionType.Redisplay) { var assocs = nakedObject.Specification.Properties.Where(p => p.IsCollection && !p.Specification.IsParseable); var item = assocs.SingleOrDefault(a => data.ContainsKey(a.Id)); return item == null ? null : item.Id; } if (controlData.ActionId == null) { var assocs = nakedObject.Specification.Properties.Where(p => !p.IsCollection || p.Specification.IsParseable); var item = assocs.SingleOrDefault(a => data.ContainsKey(a.Id)); return item == null ? null : item.Id; } { var parms = controlData.GetAction(Facade).Parameters; var item = parms.SingleOrDefault(p => data.ContainsKey(p.Id)); return item == null ? null : item.Id; } } return null; }
internal void AddAttemptedValues(ObjectAndControlData controlData) { var action = controlData.GetAction(Facade); var form = controlData.Form; foreach (var parm in action.Parameters) { string name = IdHelper.GetParameterInputId(action, parm); ValueProviderResult vp = form.GetValue(name); string[] values = vp == null ? new string[] {} : (string[]) vp.RawValue; if (parm.Specification.IsCollection && !parm.Specification.IsParseable) { // handle collection mementos if (parm.IsChoicesEnabled == Choices.Multiple || !CheckForAndAddCollectionMementoNew(name, values, controlData)) { var itemSpec = parm.ElementType; var itemvalues = values.Select(v => itemSpec.IsParseable ? (object) v : GetNakedObjectFromId(v).GetDomainObject<object>()).ToList(); if (itemvalues.Any()) { var no = Facade.GetObject(itemvalues); AddAttemptedValue(name, no); } } } else { string value = values.Any() ? values.First() : ""; if (!string.IsNullOrEmpty(value)) { AddAttemptedValue(name, parm.Specification.IsParseable ? (object) value : FilterCollection(GetNakedObjectFromId(value), controlData)); } } } }