protected virtual ActionParameterModel GetFetchParameter(ActionParameterModel originalParam, ARFetchAttribute fetchAttribute) { Type arType = originalParam.ParamInfo.ParameterType; var arModel = ActiveRecordModel.GetModel(arType); if (arModel == null) { return(originalParam); } if (arModel.PrimaryKey == null) { return(originalParam); } string paramName = fetchAttribute.RequestParameterName; object paramValue = null; if (originalParam.Value != null) { paramValue = arModel.PrimaryKey.Property.GetValue(originalParam.Value, null); } if (paramValue == null) { return(originalParam); } return(new ActionParameterModel(originalParam.ParamInfo, paramName, paramValue)); }
protected virtual ActionParameterModel GetFetchParameter(ActionParameterModel originalParam, ARFetchAttribute fetchAttribute) { Type arType = originalParam.ParamInfo.ParameterType; var arModel = ActiveRecordModel.GetModel(arType); if (arModel == null) { return originalParam; } if (arModel.PrimaryKey == null) { return originalParam; } string paramName = fetchAttribute.RequestParameterName; object paramValue = null; if (originalParam.Value != null) { paramValue = arModel.PrimaryKey.Property.GetValue(originalParam.Value, null); } if (paramValue == null) { return originalParam; } return new ActionParameterModel(originalParam.ParamInfo, paramName, paramValue); }
protected override IEnumerable <ActionParameterModel> Decorate(ActionParameterModel paramToDecorate) { if (paramToDecorate.ParamInfo.IsDefined(arFetchAttrType, false)) { ARFetchAttribute attr = (ARFetchAttribute)paramToDecorate.ParamInfo.GetCustomAttributes(arFetchAttrType, false)[0]; yield return(GetFetchParameter(paramToDecorate, attr)); } else { yield return(paramToDecorate); } }
protected override IEnumerable<ActionParameterModel> Decorate(ActionParameterModel paramToDecorate) { if (paramToDecorate.ParamInfo.IsDefined(arFetchAttrType, false)) { ARFetchAttribute attr = (ARFetchAttribute) paramToDecorate.ParamInfo.GetCustomAttributes(arFetchAttrType, false)[0]; yield return GetFetchParameter(paramToDecorate, attr); } else { yield return paramToDecorate; } }
protected override IEnumerable <ActionParameterModel> Decorate(ActionParameterModel paramToDecorate) { bool isValid = true; if (paramToDecorate.Value == null) { isValid = false; } string stringValue = paramToDecorate.Value as string; if (stringValue != null && stringValue == string.Empty) { isValid = false; } IEnumerable enumValue = paramToDecorate.Value as IEnumerable; if (enumValue != null) { IEnumerator enumerator = null; try { enumerator = enumValue.GetEnumerator(); isValid = enumerator.MoveNext(); } finally { var disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } } if (isValid) { yield return(paramToDecorate); } yield break; }
protected override IEnumerable<ActionParameterModel> Decorate(ActionParameterModel paramToDecorate) { bool isValid = true; if (paramToDecorate.Value == null) { isValid = false; } string stringValue = paramToDecorate.Value as string; if (stringValue != null && stringValue == string.Empty) { isValid = false; } IEnumerable enumValue = paramToDecorate.Value as IEnumerable; if (enumValue != null) { IEnumerator enumerator = null; try { enumerator = enumValue.GetEnumerator(); isValid = enumerator.MoveNext(); } finally { var disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } } if (isValid) { yield return paramToDecorate; } yield break; }
/// <summary> /// Decorates the action parameter. /// This way you can remove or change the existing parameter, or return one or more new parameters. /// </summary> /// <param name="paramToDecorate">The param to decorate.</param> /// <returns></returns> protected abstract IEnumerable <ActionParameterModel> Decorate(ActionParameterModel paramToDecorate);
/// <summary> /// Decorates the action parameter. /// This way you can remove or change the existing parameter, or return one or more new parameters. /// </summary> /// <param name="paramToDecorate">The param to decorate.</param> /// <returns></returns> protected abstract IEnumerable<ActionParameterModel> Decorate(ActionParameterModel paramToDecorate);