private T InvokeAction <T>(IObjectFacade nakedObject, IActionFacade action, FormCollection parameters, out bool valid) { ArgumentsContextFacade ac; IOidTranslation oid = Facade.OidTranslator.GetOidTranslation(nakedObject); ActionResultContextFacade contextFacade; if (ActionExecutingAsContributed(action, nakedObject) && action.ParameterCount == 1) { // contributed action being invoked with a single parm that is the current target // no dialog - go straight through ac = new ArgumentsContextFacade { Values = new Dictionary <string, object>(), ValidateOnly = false }; contextFacade = Facade.ExecuteObjectAction(oid, action.Id, ac); } else { ac = GetParameterValues(action, new ObjectAndControlData { Form = parameters }); contextFacade = Facade.ExecuteObjectAction(oid, action.Id, ac); } valid = contextFacade.HasResult; if (valid) { return(GetResult <T>(contextFacade)); } return(default(T)); }
public string GetParameterId(IActionFacade actionFacade, IActionParameterFacade parameterFacade) { IActionParameterSpec parameter = parameterFacade.WrappedSpec(); IActionSpec action = actionFacade.WrappedSpec(); return(action.OnSpec.ShortName + Sep + action.Id + Sep + NameUtils.CapitalizeName(parameter.Id)); }
public string GetParameterAutoCompleteId(IActionFacade action, IActionParameterFacade parameterFacade) { IActionParameterSpec parameter = parameterFacade.WrappedSpec(); var id = GetParameterInputId(action, parameterFacade); return(parameter.Spec.IsParseable ? id : id + Sep + AutoCompleteName); }
public string GetFindMenuId(IObjectFacade objectFacade, IActionFacade actionFacade, string propertyName) { IActionSpec action = actionFacade == null ? null : actionFacade.WrappedSpec(); string contextActionName = action == null ? "" : Sep + action.Id; return(GetObjectId(objectFacade) + contextActionName + Sep + NameUtils.CapitalizeName(propertyName) + Sep + IdConstants.FindMenuName); }
internal ArgumentsContextFacade GetParameterValues(IActionFacade action, ObjectAndControlData controlData) { var values = action.Parameters.Select(parm => new { Id = IdHelper.GetParameterInputId(action, parm), Parm = parm }).ToDictionary(a => a.Parm.Id, a => GetParameterValue(a.Parm, a.Id, controlData)); return(new ArgumentsContextFacade { Values = values, ValidateOnly = false }); }
public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ActionTypeContextFacade actionTypeContext) : this(oidStrategy, req) { action = actionTypeContext.ActionContext.Action; spec = actionTypeContext.OwningSpecification; cachedId = ""; CachedType = spec.DomainTypeName(oidStrategy); }
public BoardGame( IConsoleWrapper consoleWrapper, IActionFacade action ) { _consoleWrapper = consoleWrapper; _action = action; }
private static bool ContextParameterIsCollection(IActionFacade contextAction, string propertyName) { if (contextAction != null) { var parameter = contextAction.Parameters.Single(p => p.Id == propertyName); return(parameter.Specification.IsCollection); } return(false); }
public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ActionContextFacade actionContext) : this(oidStrategy ,req) { action = actionContext.Action; objectFacade = actionContext.Target; spec = objectFacade.Specification; IOidTranslation oid = oidStrategy.FrameworkFacade.OidTranslator.GetOidTranslation(objectFacade); cachedId = oid.InstanceId; CachedType = oid.DomainType; }
public void ValidateParameter(IActionFacade action, IActionParameterFacade parm, IObjectFacade targetNakedObject, object value) { var isValid = parm.IsValid(targetNakedObject, value); if (!isValid.IsAllowed) { ModelState.AddModelError(IdHelper.GetParameterInputId(action, parm), isValid.Reason); } }
internal void SetSelectedParameters(IActionFacade action) { var refItems = action.Parameters.Where(p => !p.Specification.IsCollection && !p.Specification.IsParseable).Where(p => ValueProvider.GetValue(p.Id) != null).ToList(); if (refItems.Any()) { Dictionary <string, IObjectFacade> items = refItems.ToDictionary(p => IdHelper.GetParameterInputId(action, p), p => GetNakedObjectFromId(ValueProvider.GetValue(p.Id).AttemptedValue)); items.ForEach(kvp => ViewData[kvp.Key] = kvp.Value); } }
private static ActionContextFacade ActionContext(IActionFacade actionFacade, IObjectFacade target) => new ActionContextFacade { MenuPath = "", Target = target, Action = actionFacade, VisibleParameters = actionFacade.Parameters.Select(p => new ParameterContextFacade { Parameter = p, Action = actionFacade }).ToArray() };
internal void SetSelectedParameters(IObjectFacade nakedObject, IActionFacade action, IDictionary <string, string> dict) { var refItems = action.Parameters.Where(p => !p.Specification.IsCollection && !p.Specification.IsParseable).Where(p => dict.ContainsKey(p.Id)).ToList(); if (refItems.Any()) { refItems.ForEach(p => ValidateParameter(action, p, nakedObject, GetNakedObjectFromId(dict[p.Id]).GetDomainObject <object>())); Dictionary <string, IObjectFacade> items = refItems.ToDictionary(p => IdHelper.GetParameterInputId(action, p), p => GetNakedObjectFromId(dict[p.Id])); items.ForEach(kvp => ViewData[kvp.Key] = kvp.Value); } }
public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ActionContextFacade actionContext) : this(oidStrategy, req) { action = actionContext.Action; objectFacade = actionContext.Target; spec = objectFacade.Specification; IOidTranslation oid = oidStrategy.FrameworkFacade.OidTranslator.GetOidTranslation(objectFacade); cachedId = oid.InstanceId; CachedType = oid.DomainType; }
public string GetActionId(string propertyName, IActionFacade actionContextActionFacade, IObjectFacade actionObjectFacade, IObjectFacade targetObjectFacade, IActionFacade targetActionFacade) { IActionSpec actionContextAction = actionContextActionFacade == null ? null : actionContextActionFacade.WrappedSpec(); INakedObjectAdapter actionContextTarget = actionObjectFacade == null ? null : actionObjectFacade.WrappedAdapter(); IActionSpec targetActionContextAction = targetActionFacade == null ? null : targetActionFacade.WrappedSpec(); INakedObjectAdapter targetActionContextTarget = targetObjectFacade == null ? null : targetObjectFacade.WrappedAdapter(); string contextActionName = actionContextAction == null ? "" : actionContextAction.Id + Sep; string contextNakedObjectId = actionContextTarget == null || actionContextTarget == targetActionContextTarget ? "" : GetObjectId(actionObjectFacade) + Sep; string propertyId = string.IsNullOrEmpty(propertyName) ? "" : NameUtils.CapitalizeName(propertyName) + Sep; return(contextNakedObjectId + contextActionName + propertyId + GetObjectId(targetObjectFacade) + Sep + targetActionContextAction.Id); }
public static ActionResultModel Create(IFrameworkFacade facade, IActionFacade action, IObjectFacade nakedObject, int page, int pageSize, string format) { var result = nakedObject.GetDomainObject <IEnumerable>(); Type genericType = result.GetType().IsGenericType ? result.GetType().GetGenericArguments().First() : typeof(object); Type armGenericType = result is IQueryable ? typeof(ActionResultModelQ <>) : typeof(ActionResultModel <>); Type armType = armGenericType.MakeGenericType(genericType); var arm = (ActionResultModel)Activator.CreateInstance(armType, action, result); arm.Page = page; arm.PageSize = pageSize; arm.Format = format; return(facade.Wrap(arm, nakedObject) as ActionResultModel); }
internal void SetContextObjectAsParameterValue(IActionFacade targetAction, IObjectFacade contextNakedObject) { if (targetAction.Parameters.Any(p => p.Specification.IsOfType(contextNakedObject.Specification))) { foreach (var parm in targetAction.Parameters) { if (parm.Specification.IsOfType(contextNakedObject.Specification)) { string name = IdHelper.GetParameterInputId(targetAction, parm); AddAttemptedValue(name, contextNakedObject); } } } }
private static IEnumerable GetResultAsEnumerable(IObjectFacade result, IActionFacade contextAction, string propertyName) { if (result != null) { if (result.Specification.IsCollection && !ContextParameterIsCollection(contextAction, propertyName)) { return(result.GetDomainObject <IEnumerable>()); } return(new List <object> { result.GetDomainObject() }); } return(new List <object>()); }
public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ActionContextFacade actionContext) : this(oidStrategy, req) { action = actionContext.Action; objectFacade = actionContext.Target; spec = objectFacade.Specification; if (objectFacade.Specification.IsParseable) { throw new ArgumentException($"Cannot build URI for parseable specification : {objectFacade.Specification.FullName}"); } IOidTranslation oid = oidStrategy.FrameworkFacade.OidTranslator.GetOidTranslation(objectFacade); cachedId = oid.InstanceId; CachedType = oid.DomainType; }
private IDictionary <string, object> GetOtherValues(IActionFacade action) { var results = new Dictionary <string, object>(); var parms = new FormCollection(HttpContext.Request.Params); Decrypt(parms); foreach (var parm in action.Parameters) { string[] values = GetRawValues(parms, IdHelper.GetParameterInputId(action, parm)); results[parm.Id.ToLower()] = GetValue(values, parm, parm.Specification); } return(results); }
private ActionResult SelectSingleItem(IObjectFacade nakedObject, IActionFacade action, ObjectAndControlData controlData, IDictionary <string, string> selectedItem) { var property = DisplaySingleProperty(controlData, selectedItem); if (action == null) { SetSelectedReferences(nakedObject, selectedItem); return(property == null?View("ObjectEdit", nakedObject.GetDomainObject()) : View("PropertyEdit", new PropertyViewModel(nakedObject.GetDomainObject(), property))); } SetSelectedParameters(nakedObject, action, selectedItem); return(View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel { ContextObject = nakedObject.GetDomainObject(), ContextAction = action, PropertyName = property })); }
internal void SetDefaults(IObjectFacade nakedObject, IActionFacade action) { foreach (var parm in action.Parameters) { var value = parm.GetDefault(nakedObject); var isExplicit = parm.DefaultTypeIsExplicit(nakedObject); bool ignore = value == null || (value.GetDomainObject() is DateTime && ((DateTime)value.GetDomainObject()).Ticks == 0) || !isExplicit; if (!ignore) { // deliberately not an attempted value so it only gets populated after masking ViewData[IdHelper.GetParameterInputId(action, parm)] = parm.Specification.IsParseable ? value.GetDomainObject() : value; } } }
public IActionFacade GetAction(IFrameworkFacade facade) { if (actionFacade == null) { var no = GetNakedObject(facade); IActionFacade action; if (no.Specification.IsCollection) { var elementSpec = no.ElementSpecification; action = elementSpec.GetCollectionContributedActions().Where(a => a.IsVisible(no)).Single(a => a.Id == ActionId); } else { var id = facade.OidTranslator.GetOidTranslation(no); action = facade.GetObjectAction(id, ActionId).Action; } actionFacade = action.IsUsable(no).IsAllowed ? action : null; } return(actionFacade); }
private static IEnumerable GetResultAsEnumerable(IObjectFacade result, IActionFacade contextAction, string propertyName) { if (result != null) { if (result.Specification.IsCollection && !ContextParameterIsCollection(contextAction, propertyName)) { return result.GetDomainObject<IEnumerable>(); } return new List<object> {result.GetDomainObject()}; } return new List<object>(); }
internal ArgumentsContextFacade GetParameterValues(IActionFacade action, ObjectAndControlData controlData) { var values = action.Parameters.Select(parm => new {Id = IdHelper.GetParameterInputId(action, parm), Parm = parm}).ToDictionary(a => a.Parm.Id, a => GetParameterValue(a.Parm, a.Id, controlData)); return new ArgumentsContextFacade {Values = values, ValidateOnly = false}; }
internal static bool ActionExecutingAsContributed(IActionFacade action, IObjectFacade targetNakedObject) { return action.IsContributed && !action.OnType.Equals(targetNakedObject.Specification); }
public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ParameterTypeContextFacade parameterTypeContext) : this(oidStrategy ,req) { action = parameterTypeContext.Action; spec = parameterTypeContext.OwningSpecification; param = parameterTypeContext.Parameter; cachedId = ""; CachedType = spec.DomainTypeName(oidStrategy); }
private ActionResult ExecuteAction(ObjectAndControlData controlData, IObjectFacade nakedObject, IActionFacade action) { if (ActionExecutingAsContributed(action, nakedObject) && action.ParameterCount == 1) { // contributed action being invoked with a single parm that is the current target // no dialog - go straight through var ac = new ArgumentsContextFacade { Values = new Dictionary <string, object>(), ValidateOnly = false }; if (nakedObject.Specification.IsCollection && !nakedObject.Specification.IsParseable) { var oids = nakedObject.ToEnumerable().Select(no => Facade.OidTranslator.GetOidTranslation(no)).ToArray(); var spec = nakedObject.ElementSpecification; var ar = Facade.ExecuteListAction(oids, spec, action.Id, ac); return(AppropriateView(controlData, GetResult(ar), action)); } else { var oid = Facade.OidTranslator.GetOidTranslation(nakedObject); var ar = Facade.ExecuteObjectAction(oid, action.Id, ac); return(AppropriateView(controlData, GetResult(ar), action)); } } if (!action.Parameters.Any()) { var ac = new ArgumentsContextFacade { Values = new Dictionary <string, object>(), ValidateOnly = false }; var oid = Facade.OidTranslator.GetOidTranslation(nakedObject); var result = Facade.ExecuteObjectAction(oid, action.Id, ac); return(AppropriateView(controlData, GetResult(result), action)); } SetDefaults(nakedObject, action); // do after any parameters set by contributed action so this takes priority SetSelectedParameters(action); SetPagingValues(controlData, nakedObject); var property = DisplaySingleProperty(controlData, controlData.DataDict); return(View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel { ContextObject = nakedObject.GetDomainObject(), ContextAction = action, PropertyName = property })); }
internal static Tuple<bool, string> IsDuplicate(this HtmlHelper html, IEnumerable<IActionFacade> allActions, IActionFacade action) { return new Tuple<bool, string>(allActions.Count(a => a.Name == action.Name) > 1, MvcUi.DuplicateAction); }
internal void SetContextObjectAsParameterValue(IActionFacade targetAction, IObjectFacade contextNakedObject) { if (targetAction.Parameters.Any(p => p.Specification.IsOfType(contextNakedObject.Specification))) { foreach (var parm in targetAction.Parameters) { if (parm.Specification.IsOfType(contextNakedObject.Specification)) { string name = IdHelper.GetParameterInputId(targetAction, parm); AddAttemptedValue(name, contextNakedObject); } } } }
public ActionContext(IIdHelper idHelper, bool embeddedInObject, IObjectFacade target, IActionFacade action) : base(idHelper, target) { EmbeddedInObject = embeddedInObject; Action = action; }
public string GetParameterContainerId(IActionFacade actionFacade) { IActionSpec action = actionFacade.WrappedSpec(); return action.Id + Sep + IdConstants.ParamListName; }
public string GetActionId(IObjectFacade owner, IActionFacade actionFacade) { IActionSpec action = actionFacade.WrappedSpec(); return GetObjectId(owner) + Sep + action.Id; }
public string GetParameterInputId(IActionFacade action, IActionParameterFacade parameterFacade) { IActionParameterSpec parameter = parameterFacade.WrappedSpec(); return GetParameterId(action, parameterFacade) + Sep + InputOrSelect(parameter.Spec); }
internal void SetDefaults(IObjectFacade nakedObject, IActionFacade action) { foreach (var parm in action.Parameters) { var value = parm.GetDefault(nakedObject); var isExplicit = parm.DefaultTypeIsExplicit(nakedObject); bool ignore = value == null || (value.GetDomainObject() is DateTime && ((DateTime) value.GetDomainObject()).Ticks == 0) || !isExplicit; if (!ignore) { // deliberately not an attempted value so it only gets populated after masking ViewData[IdHelper.GetParameterInputId(action, parm)] = parm.Specification.IsParseable ? value.GetDomainObject() : value; } } }
internal void SetSelectedParameters(IActionFacade action) { var refItems = action.Parameters.Where(p => !p.Specification.IsCollection && !p.Specification.IsParseable).Where(p => ValueProvider.GetValue(p.Id) != null).ToList(); if (refItems.Any()) { Dictionary<string, IObjectFacade> items = refItems.ToDictionary(p => IdHelper.GetParameterInputId(action, p), p => GetNakedObjectFromId(ValueProvider.GetValue(p.Id).AttemptedValue)); items.ForEach(kvp => ViewData[kvp.Key] = kvp.Value); } }
public void ValidateParameter(IActionFacade action, IActionParameterFacade parm, IObjectFacade targetNakedObject, object value) { var isValid = parm.IsValid(targetNakedObject, value); if (!isValid.IsAllowed) { ModelState.AddModelError(IdHelper.GetParameterInputId(action, parm), isValid.Reason); } }
private IDictionary<string, object> GetOtherValues(IActionFacade action) { var results = new Dictionary<string, object>(); var parms = new FormCollection(HttpContext.Request.Params); Decrypt(parms); foreach (var parm in action.Parameters) { string[] values = GetRawValues(parms, IdHelper.GetParameterInputId(action, parm)); results[parm.Id.ToLower()] = GetValue(values, parm, parm.Specification); } return results; }
private static object CreateDefaultLinks(IOidStrategy oidStrategy, HttpRequestMessage req, FieldFacadeAdapter parameter, IActionFacade action, IObjectFacade defaultNakedObject, string title, RestControlFlags flags) { if (defaultNakedObject.Specification.IsCollection) { return defaultNakedObject.ToEnumerable().Select(i => CreateDefaultLink(oidStrategy, req, parameter, action, i, i.TitleString, flags)).ToArray(); } return CreateDefaultLink(oidStrategy, req, parameter, action, defaultNakedObject, title, flags); }
private ActionContextFacade ActionContext(IActionFacade actionFacade, IObjectFacade target) { return new ActionContextFacade { MenuPath = "", Target = target, Action = actionFacade, VisibleParameters = actionFacade.Parameters.Select(p => new ParameterContextFacade { Parameter = p, Action = actionFacade }).ToArray() }; }
public ParameterContext(IIdHelper idhelper, bool embeddedInObject, IObjectFacade target, IActionFacade action, IActionParameterFacade parameter, bool isEdit) : base(idhelper, embeddedInObject, target, action) { Parameter = parameter; IsParameterEdit = isEdit; }
public string GetActionDialogId(IObjectFacade owner, IActionFacade actionFacade) { IActionSpec action = actionFacade.WrappedSpec(); return GetObjectId(owner) + Sep + action.Id + Sep + IdConstants.DialogName; }
private static LinkRepresentation CreateDefaultLink(IOidStrategy oidStrategy, HttpRequestMessage req, FieldFacadeAdapter parameter, IActionFacade action, IObjectFacade defaultNakedObject, string title, RestControlFlags flags) { var helper = new UriMtHelper(oidStrategy, req, defaultNakedObject); var relType = new DefaultRelType(action.Id, parameter.Id, helper); return LinkRepresentation.Create(oidStrategy, relType, flags, new OptionalProperty(JsonPropertyNames.Title, title)); }
public string GetFindMenuId(IObjectFacade objectFacade, IActionFacade actionFacade, string propertyName) { IActionSpec action = actionFacade == null ? null : actionFacade.WrappedSpec(); string contextActionName = action == null ? "" : Sep + action.Id; return GetObjectId(objectFacade) + contextActionName + Sep + NameUtils.CapitalizeName(propertyName) + Sep + IdConstants.FindMenuName; }
public static MvcHtmlString CollectionList(this HtmlHelper html, IEnumerable collection, IActionFacade action) { return(html.Collection(collection, action)); }
internal void SetSelectedParameters(IObjectFacade nakedObject, IActionFacade action, IDictionary<string, string> dict) { var refItems = action.Parameters.Where(p => !p.Specification.IsCollection && !p.Specification.IsParseable).Where(p => dict.ContainsKey(p.Id)).ToList(); if (refItems.Any()) { refItems.ForEach(p => ValidateParameter(action, p, nakedObject, GetNakedObjectFromId(dict[p.Id]).GetDomainObject<object>())); Dictionary<string, IObjectFacade> items = refItems.ToDictionary(p => IdHelper.GetParameterInputId(action, p), p => GetNakedObjectFromId(dict[p.Id])); items.ForEach(kvp => ViewData[kvp.Key] = kvp.Value); } }
public static IActionSpec WrappedSpec(this IActionFacade actionFacade) { return(actionFacade == null ? null : ((ActionFacade)actionFacade).WrappedSpec); }
public IActionFacade GetAction(IFrameworkFacade facade) { if (actionFacade == null) { var no = GetNakedObject(facade); IActionFacade action; if (no.Specification.IsCollection) { var elementSpec = no.ElementSpecification; action = elementSpec.GetCollectionContributedActions().Where(a => a.IsVisible(no)).Single(a => a.Id == ActionId); } else { var id = facade.OidTranslator.GetOidTranslation(no); action = facade.GetObjectAction(id, ActionId).Action; } actionFacade = action.IsUsable(no).IsAllowed ? action : null; } return actionFacade; }
private ActionResult ExecuteAction(ObjectAndControlData controlData, IObjectFacade nakedObject, IActionFacade action) { if (ActionExecutingAsContributed(action, nakedObject) && action.ParameterCount == 1) { // contributed action being invoked with a single parm that is the current target // no dialog - go straight through var ac = new ArgumentsContextFacade {Values = new Dictionary<string, object>(), ValidateOnly = false}; if (nakedObject.Specification.IsCollection && !nakedObject.Specification.IsParseable) { var oids = nakedObject.ToEnumerable().Select(no => Facade.OidTranslator.GetOidTranslation(no)).ToArray(); var spec = nakedObject.ElementSpecification; var ar = Facade.ExecuteListAction(oids, spec, action.Id, ac); return AppropriateView(controlData, GetResult(ar), action); } else { var oid = Facade.OidTranslator.GetOidTranslation(nakedObject); var ar = Facade.ExecuteObjectAction(oid, action.Id, ac); return AppropriateView(controlData, GetResult(ar), action); } } if (!action.Parameters.Any()) { var ac = new ArgumentsContextFacade {Values = new Dictionary<string, object>(), ValidateOnly = false}; var oid = Facade.OidTranslator.GetOidTranslation(nakedObject); var result = Facade.ExecuteObjectAction(oid, action.Id, ac); return AppropriateView(controlData, GetResult(result), action); } SetDefaults(nakedObject, action); // do after any parameters set by contributed action so this takes priority SetSelectedParameters(action); SetPagingValues(controlData, nakedObject); var property = DisplaySingleProperty(controlData, controlData.DataDict); return View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel {ContextObject = nakedObject.GetDomainObject(), ContextAction = action, PropertyName = property}); }
private ActionResult SelectSingleItem(IObjectFacade nakedObject, IActionFacade action, ObjectAndControlData controlData, IDictionary<string, string> selectedItem) { var property = DisplaySingleProperty(controlData, selectedItem); if (action == null) { SetSelectedReferences(nakedObject, selectedItem); return property == null ? View("ObjectEdit", nakedObject.GetDomainObject()) : View("PropertyEdit", new PropertyViewModel(nakedObject.GetDomainObject(), property)); } SetSelectedParameters(nakedObject, action, selectedItem); return View(property == null ? "ActionDialog" : "PropertyEdit", new FindViewModel {ContextObject = nakedObject.GetDomainObject(), ContextAction = action, PropertyName = property}); }
public string GetSubMenuId(IObjectFacade owner, IActionFacade actionFacade) { IActionSpec action = actionFacade.WrappedSpec(); return EnsureEndsWithColon(GetObjectId(owner) + Sep + action.Id.Split('.').Last()); }
private static bool ContextParameterIsCollection(IActionFacade contextAction, string propertyName) { if (contextAction != null) { var parameter = contextAction.Parameters.Single(p => p.Id == propertyName); return parameter.Specification.IsCollection; } return false; }
public string GetParameterId(IActionFacade actionFacade, IActionParameterFacade parameterFacade) { IActionParameterSpec parameter = parameterFacade.WrappedSpec(); IActionSpec action = actionFacade.WrappedSpec(); return action.OnSpec.ShortName + Sep + action.Id + Sep + NameUtils.CapitalizeName(parameter.Id); }
internal ActionResult AppropriateView(ObjectAndControlData controlData, IObjectFacade nakedObject, IActionFacade action = null, string propertyName = null) { if (nakedObject == null) { // no object to go to // if action on object go to that object. // if action on collection go to collection // if action on service go to last object nakedObject = controlData.GetNakedObject(Facade); if (nakedObject.Specification.IsService) { object lastObject = Session.LastObject(Facade, ObjectCache.ObjectFlag.BreadCrumb); if (lastObject == null) { return RedirectHome(); } nakedObject = Facade.GetObject(lastObject); } if (nakedObject.IsCollectionMemento) { // if we have returned null and existing object is collection memento need to make // sure action remains action from original collectionMemento. action = nakedObject.MementoAction; } } if (nakedObject.Specification.IsCollection && !nakedObject.Specification.IsParseable) { int collectionSize = nakedObject.Count(); if (collectionSize == 1) { // remove any paging data - to catch case where custom page has embedded standalone collection as paging data will confuse rendering ViewData.Remove(IdConstants.PagingData); // is this safe TODO !! return View("ObjectView", nakedObject.ToEnumerable().First().GetDomainObject()); } nakedObject = Page(nakedObject, collectionSize, controlData); // todo is there a better way to do this ? action = action ?? nakedObject.MementoAction; int page, pageSize; CurrentlyPaging(controlData, collectionSize, out page, out pageSize); var format = ViewData["NofCollectionFormat"] as string; return View("StandaloneTable", ActionResultModel.Create(Facade, action, nakedObject, page, pageSize, format)); } // remove any paging data - to catch case where custom page has embedded standalone collection as paging data will confuse rendering ViewData.Remove(IdConstants.PagingData); if (controlData.DataDict.Values.Contains("max")) { // maximizing an inline object - do not update history ViewData.Add("updateHistory", false); } return propertyName == null ? View(nakedObject.IsNotPersistent ? "ObjectView" : "ViewNameSetAfterTransaction", nakedObject.GetDomainObject()) : View(nakedObject.IsNotPersistent ? "PropertyView" : "ViewNameSetAfterTransaction", new PropertyViewModel(nakedObject.GetDomainObject(), propertyName)); }
public string GetParameterAutoCompleteId(IActionFacade action, IActionParameterFacade parameterFacade) { IActionParameterSpec parameter = parameterFacade.WrappedSpec(); var id = GetParameterInputId(action, parameterFacade); return parameter.Spec.IsParseable ? id : id + Sep + AutoCompleteName; }
internal static MvcHtmlString CollectionListInternal(this HtmlHelper html, IEnumerable collection, IActionFacade action = null) { var nakedObject = html.Facade().GetObject(collection); return(html.GetStandaloneList(nakedObject, null)); }
public string GetConcurrencyActionInputId(IObjectFacade owner, IActionFacade action, IAssociationFacade assocFacade) { IAssociationSpec assoc = assocFacade.WrappedSpec(); return GetActionId(owner, action) + Sep + assoc.Id + Sep + ConcurrencyName; }
public static MvcHtmlString Collection(this HtmlHelper html, IEnumerable collection, IActionFacade action, string defaultTo = IdConstants.ListDisplayFormat) { bool renderEagerly = CommonHtmlHelper.RenderEagerly(action); string displayType = DefaultFormat(html, renderEagerly ? IdConstants.TableDisplayFormat : defaultTo); return(displayType == IdConstants.TableDisplayFormat ? CollectionTableInternal(html, collection, action) : CollectionListInternal(html, collection, action)); }
public string GetActionId(string propertyName, IActionFacade actionContextActionFacade, IObjectFacade actionObjectFacade, IObjectFacade targetObjectFacade, IActionFacade targetActionFacade) { IActionSpec actionContextAction = actionContextActionFacade == null ? null : actionContextActionFacade.WrappedSpec(); INakedObjectAdapter actionContextTarget = actionObjectFacade == null ? null : actionObjectFacade.WrappedAdapter(); IActionSpec targetActionContextAction = targetActionFacade == null ? null : targetActionFacade.WrappedSpec(); INakedObjectAdapter targetActionContextTarget = targetObjectFacade == null ? null : targetObjectFacade.WrappedAdapter(); string contextActionName = actionContextAction == null ? "" : actionContextAction.Id + Sep; string contextNakedObjectId = actionContextTarget == null || actionContextTarget == targetActionContextTarget ? "" : GetObjectId(actionObjectFacade) + Sep; string propertyId = string.IsNullOrEmpty(propertyName) ? "" : NameUtils.CapitalizeName(propertyName) + Sep; return contextNakedObjectId + contextActionName + propertyId + GetObjectId(targetObjectFacade) + Sep + targetActionContextAction.Id; }
public static MvcHtmlString CollectionTable(this HtmlHelper html, IEnumerable collection, IActionFacade action) { return(html.Collection(collection, action, IdConstants.TableDisplayFormat)); }