Exemplo n.º 1
0
        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);
		}
Exemplo n.º 3
0
 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;
			}
		}
Exemplo n.º 5
0
        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;
		}
Exemplo n.º 7
0
 /// <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);