Beispiel #1
0
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            //List<IMS_CM_DM> dataList;
            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetCodeList":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetCodeList((CodeTypeEnum)objs[0]);
                break;

            case "GetCode":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetCode((CodeTypeEnum)objs[0], (int)objs[1]);
                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        //public static TReturn UseService<TReturn>(
        //    Binding binding
        //    , EndpointAddress edpAddr
        //    , Func<TChannel, TReturn> func)
        //{
        //    //var chanFactory = new ChannelFactory<TChannel>("*");
        //    var chanFactory = new ChannelFactory<TChannel>(binding, edpAddr);
        //    TChannel channel = chanFactory.CreateChannel();
        //    ((IClientChannel)channel).Open();
        //    TReturn result = func(channel);
        //    try
        //    {
        //        ((IClientChannel)channel).Close();
        //    }
        //    catch
        //    {
        //        ((IClientChannel)channel).Abort();
        //    }
        //    return result;
        //}

        //public static void UseService(
        //   Binding binding
        //   , EndpointAddress edpAddr
        //   , Action<TChannel> func)
        //{
        //    //var chanFactory = new ChannelFactory<TChannel>("*");
        //    var chanFactory = new ChannelFactory<TChannel>(binding, edpAddr);
        //    TChannel channel = chanFactory.CreateChannel();
        //    ((IClientChannel)channel).Open();
        //    func(channel);
        //    try
        //    {
        //        ((IClientChannel)channel).Close();
        //    }
        //    catch
        //    {
        //        ((IClientChannel)channel).Abort();
        //    }
        //}

        /// <summary>
        /// 执行wcf方法并返回数据
        /// </summary>
        /// <typeparam name="P">参数类型</typeparam>
        /// <typeparam name="Return">返回类型</typeparam>
        /// <param name="methodName">方法名</param>
        /// <param name="parameters">参数</param>
        /// <param name="serType"></param>
        /// <returns></returns>
        protected virtual Return RequestFunc <P, Return>(string methodName, P parameters)
        {
#if DEBUG
            //try
            //{
#endif
            WcfRequest req = new WcfRequest();
            req.Head.RequestMethodName = methodName;
            req.Head.ClassName         = this.GetType().Name;
            if (parameters != null)
            {
                req.Body.Parameters = parameters;
            }

            var res = base.Channel.Request(req);
            if (res.Head.IsSuccess)
            {
                return((Return)res.Body.Data);
            }

            // 返回不是真 抛出异常
            throw new JsMiracleException(res.Head.Message);
#if DEBUG
            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine(ex.Message);
            //    return default(Return);
            //}
#endif
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetMaxPosition":
                res.Body.Data = dal.GetMaxPosition();
                break;

            case "GetLocationState":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetLocationState(Convert.ToInt32(objs[0]));

                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetUserList":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetUserList((string)objs[0]);
                break;

            case "SaveRoleUser":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.SaveRoleUser((string)objs[0], (string)objs[1]);
                break;

            case "RemoveRoleUser":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.RemoveRoleUser((string)objs[0], (string)objs[1]);
                break;

            // 没有方法交给父类处理
            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetRootModule":
                res.Body.Data = dal.GetRootModule();
                break;

            case "GetEntityByModuleID":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetEntityByModuleID((int)objs[0]);
                break;

            case "GetChildModuleList":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetChildModuleList((int)objs[0]);
                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
Beispiel #6
0
        //public WcfResponse RequestOverride(WcfRequest req)
        //{
        //    return this.RequestFun(req);
        //}


        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetAllUserList":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetAllUserList((bool)objs[0]);
                break;

            case "GetEntityByYHBH":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetEntityByYHBH((string)objs[0]);

                break;

            case "Delete":
                objs = (object[])req.Body.Parameters;
                dal.Delete(objs[0]);
                break;

            case "MinPasswordLength":
                res.Body.Data = dal.MinPasswordLength();

                break;

            case "ValidateUser":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.ValidateUser((string)objs[0], (string)objs[1]);
                break;

            case "CreateUser":
                objs = (object[])req.Body.Parameters;
                dal.CreateUser(
                    (string)objs[0],
                    (string)objs[1],
                    (string)objs[2],
                    (string)objs[3]);
                break;

            case "ChangePassword":
                objs = (object[])req.Body.Parameters;
                dal.ChangePassword(
                    (string)objs[0],
                    (string)objs[1],
                    (string)objs[2]);
                break;

            // 没有方法交给父类处理
            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
Beispiel #7
0
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            switch (req.Head.RequestMethodName)
            {
            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        /// <summary>
        /// 执行wcf方法没有返回数据
        /// </summary>
        /// <typeparam name="P">参数类型</typeparam>
        /// <param name="methodName">方法名</param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        protected virtual void RequestAction <P>(string methodName, P parameters)
        {
            WcfRequest req = new WcfRequest();

            req.Head.RequestMethodName = methodName;
            req.Body.Parameters        = parameters;

            var res = base.Channel.Request(req);

            if (res.Head.IsSuccess)
            {
                return;
            }

            // 返回不是真 抛出异常
            throw new JsMiracleException(res.Head.Message);
        }
Beispiel #9
0
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            switch (req.Head.RequestMethodName)
            {
            case "GetAllRole":
                res.Body.Data = dal.GetAllRole();
                break;

            // 没有方法交给父类处理
            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetPermissionInfo":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetPermissionInfo((string)objs[0]);
                break;

            case "SavePermission":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.SavePermission((bool)objs[0]
                                                   , (int)objs[1]
                                                   , (int)objs[2]
                                                   , (int)objs[3]
                                                   , (string)objs[4]);
                break;

            case "GetPermissionListByUserID":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetPermissionListByUserID((string)objs[0]);
                break;

            case "GetAllPermission":
                res.Body.Data = dal.GetAllPermission();
                break;

            case "GetPermissionListByRoleID":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetPermissionListByRoleID((string)objs[0]);
                break;

            // 没有方法交给父类处理
            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;
            switch (req.Head.RequestMethodName)
            {
            case "GetEntityBylxdm":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetEntityBylxdm((string)objs[0]);
                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
        protected override WcfResponse RequestFun(WcfRequest req)
        {
            WcfResponse res = new WcfResponse();

            object[] objs;
            switch (req.Head.RequestMethodName)
            {
            case "ReSaveObjectData":
                objs = (object[])req.Body.Parameters;
                dal.ReSaveObjectData((string)objs[0], (string)objs[1]);
                break;

            case "GetObjectColumnList":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = dal.GetObjectColumnList((string)objs[0]);
                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;
            return(res);
        }
Beispiel #13
0
 protected override WcfResponse RequestFun(WcfRequest req)
 {
     return(null);
 }
Beispiel #14
0
 public WcfResponse RequestOverride(WcfRequest req)
 {
     return(this.RequestFun(req));
 }
 public WcfResponse Request(WcfRequest req)
 {
     return(base.Channel.Request(req));
 }
 protected abstract WcfResponse BaseRequest(WcfRequest req);
        /// <summary>
        /// 所有外部请求的接收方法
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public virtual WcfResponse Request(WcfRequest req)
        {
            WcfResponse res = null;

            try
            {
                var resFun = BaseRequest(req);
                if (resFun != null)
                {
                    return(resFun);
                }

                throw new JsMiracleException(
                          string.Format("调用的方法不存在 {0}", req.Head.RequestMethodName));
            }
            catch (DbEntityValidationException dbEx)
            {
                if (res == null)
                {
                    res = new WcfResponse();
                }

                StringBuilder sb = new StringBuilder();
                if (dbEx.EntityValidationErrors != null)
                {
                    foreach (var err in dbEx.EntityValidationErrors)
                    {
                        foreach (var valerr in err.ValidationErrors)
                        {
                            sb.AppendFormat("{0}:{1}", valerr.PropertyName, valerr.ErrorMessage);
                        }
                        //valerr.PropertyName , valerr.
                    }
                    res.Head.Message = sb.ToString();
                }
                else
                {
                    res.Head.Message = dbEx.Message;
                }
                res.Head.IsSuccess = false;
            }
            catch (Exception ex)
            {
                if (res == null)
                {
                    res = new WcfResponse();
                }

                if (ex is JsMiracle.Framework.JsMiracleException)
                {
                    res.Head.Message = ex.Message;
                }
                else
                {
                    Exception innerExp = ex;

                    while (innerExp.InnerException != null)
                    {
                        innerExp = innerExp.InnerException;
                    }
                    res.Head.Message = string.Format("{0}-{1}", ex.Message, innerExp.Message);
                }

                res.Head.IsSuccess = false;
            }
            return(res);
        }
Beispiel #18
0
 protected abstract WcfResponse RequestFun(WcfRequest req);
Beispiel #19
0
        protected override WcfResponse BaseRequest(WcfRequest req)
        {
            var res = RequestFun(req);

            if (res != null)
            {
                res.Head.IsSuccess = true;
                return(res);
            }

            res = new WcfResponse();

            T        ent;
            List <T> dataList;

            object[] objs;

            switch (req.Head.RequestMethodName)
            {
            case "GetEntity":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = DataLayer.GetEntity(objs[0]);
                break;

            case "GetAllEntites":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = DataLayer.GetAllEntites((string)objs[0]);
                break;

            case "Exists":
                objs          = (object[])req.Body.Parameters;
                res.Body.Data = DataLayer.Exists((string)objs[0]);
                break;

            case "SaveOrUpdate":
                ent           = (T)req.Body.Parameters;
                ent           = DataLayer.SaveOrUpdate(ent);
                res.Body.Data = ent;
                break;

            case "Delete":
                objs = (object[])req.Body.Parameters;
                DataLayer.Delete(objs[0]);
                break;

            case "Insert":
                ent           = (T)req.Body.Parameters;
                ent           = DataLayer.Insert(ent);
                res.Body.Data = ent;
                break;

            case "GetDataByPageDynamic":
                //splitPar = (SplitPageParameters)req.Body.Parameters;
                objs = (object[])req.Body.Parameters;
                int rowCount;

                //var data = new SplitPageData<T>();
                dataList =
                    DataLayer.GetDataByPageDynamic(
                        (int)objs[0]            // PageIndex
                        , (int)objs[1]          // PageSize
                        , out rowCount
                        , (string)objs[2]       // OrderBy
                        , (string)objs[3]       // Where
                        , (object[])objs[4]);   //WhereParams

                res.Body.Data = new object[] { rowCount, dataList };
                break;

            default:
                return(null);
            }

            res.Head.IsSuccess = true;

            return(res);
        }