예제 #1
0
        public Com_Count FirstOrDefaultByTargetIdAndCategoryId(Guid targetId, string categoryId)
        {
            var list = this.FindByProperties(Where.Create().Eq("TargetId", targetId).Eq("CategoryId", categoryId));

            if (IValidatorTool.IsEmpty(list))
            {
                return(null);
            }
            return(list[0]);
        }
예제 #2
0
        public static T RequestParam <T>(string parameterName, T defaultValue = default(T))
        {
            IValidatorTool validator       = ToolFactory.CreateIValidatorTool();
            var            srcRequestValue = Request[parameterName];

            if (validator.IsEmpty(srcRequestValue))
            {
                return(default(T));
            }
            T value = ToolFactory.CreateIProgramTool().ChanageType <T>(srcRequestValue);

            if (value == null && defaultValue != null)
            {
                return(defaultValue);
            }
            return(value);
        }
예제 #3
0
        /// <summary>
        /// 从匹配的目标路由集合中查找匹配的目标路由
        /// </summary>
        /// <param name="formRouteData">源路由数据</param>
        /// <returns>配置的目标路由数据</returns>
        public AbstractMethodRouteData FindRouteData(MethodFormRouteData formRouteData)
        {
            var baseRouteData = base.FindRouteData(formRouteData);

            if (IValidatorTool.IsEmpty(baseRouteData))
            {
                throw new Exception(string.Format("没有查找到{0},相关的映射方法", formRouteData.Form));
            }
            if (baseRouteData.Count == 1)
            {
                return((AbstractMethodRouteData)baseRouteData[0]);
            }

            var methodFormRouteData = (MethodFormRouteData)formRouteData;
            List <AbstractMethodRouteData> methodRouteDatas = new List <AbstractMethodRouteData>(baseRouteData.Count);

            foreach (var item in baseRouteData)
            {
                methodRouteDatas.Add((AbstractMethodRouteData)item);
            }
            IList <AbstractMethodRouteData> routeDatas = this.FindMaxMatchRouteDatas(methodFormRouteData, methodRouteDatas);

            if (IValidatorTool.IsEmpty(routeDatas))
            {
                throw new Exception(string.Format("没有查找到{0},相关的映射方法", methodFormRouteData.Form));
            }

            if (routeDatas.Count > 1)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("{0},查找到多个映射方法", methodFormRouteData.Form);
                foreach (var item in routeDatas)
                {
                    var reflectorRouteData = (AbstractMethodRouteData)item;
                    sb.AppendLine(reflectorRouteData.ServiceType.FullName + "." + reflectorRouteData.MethodInfo.Name);
                }
                throw new Exception(sb.ToString());
            }
            return(routeDatas[0]);
        }