コード例 #1
0
ファイル: PubExtend.cs プロジェクト: HaiBoHan/HBHDaYunsy
        // 库存同步接口(异步)
        /// <summary>
        /// 库存同步接口(异步)
        /// </summary>
        /// <param name="service"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        public static DMSAsync_PI07.stockDTO[] Do(this DMSAsync_PI07.PI07Client service, DMSAsync_PI07.stockDTO[] param)
        {
            service.Endpoint.Address = new System.ServiceModel.EndpointAddress(PubHelper.GetAddress(service.Endpoint.Address.Uri.ToString()));

            string entityName = "库存同步接口(异步)";
            long svID = -1;
            if (IsLog)
            {
                svID = ProxyLogger.CreateTransferSV(entityName
                    //, EntitySerialization.EntitySerial(bpObj)
                    , Newtonsoft.Json.JsonConvert.SerializeObject(param)
                    , service.GetType().FullName, Newtonsoft.Json.JsonConvert.SerializeObject(service.Endpoint.Address));
            }

            //UFIDA.U9.CBO.Pub.Controller.ContextDTO contextDTO = new UFIDA.U9.CBO.Pub.Controller.ContextDTO();
            //contextDTO.EntCode = PubClass.GetString(UFIDA.U9.Base.Context.GetAttribute("EnterpriseID"));
            //contextDTO.OrgCode = Context.LoginOrg.Code;
            //contextDTO.UserCode = Context.LoginUser;

            //U9Context context = new U9Context();
            //string enCode = PubClass.GetString(UFIDA.U9.Base.Context.GetAttribute("EnterpriseID"));
            //context.EnterpriseCode = enCode;
            //context.EnterpriseID = enCode;
            //context.OrgCode = Context.LoginOrg.Code;
            //context.OrgID = Context.LoginOrg.ID.ToString();
            //context.CultureName = Context.LoginLanguageCode;
            //context.UserID = Context.LoginUserID;
            //context.UserCode = Context.LoginUser;
            //context.Url = "http://localhost/U9/HBHServices/U9.VOB.HBHCommon.IU9CommonSV.svc";
            U9Context context = GetHBHU9Context();

            try
            {
                //var result = service.receive(param);

                //service.receiveCompleted += new EventHandler<DMSAsync_PI07.receiveCompletedEventArgs>(service_receiveCompleted);
                //service.receiveAsync(param, svID);
                service.Beginreceive(param
                    , delegate(IAsyncResult asyncResult)
                      {
                          if (asyncResult != null
                              )
                          {
                              //long svID = (long)asyncResult.AsyncState;
                              svID = (long)asyncResult.AsyncState;

                              if (svID > 0)
                              {
                                  EntityResult logResult = new EntityResult();

                                  DMSAsync_PI07.stockDTO[] result = null;
                                  try
                                  {
                                      result = service.Endreceive(asyncResult);
                                      //contextDTO.WriteToContext();
                                  }
                                  catch (Exception ex)
                                  {
                                      //ProxyLogger.UpdateTransferSV(svID, string.Empty, false, ex.Message, "异步获取返回值异常!", ex.StackTrace);
                                      logResult.Sucessfull = false;
                                      logResult.Message = ex.Message;
                                      logResult.Trace = ex.StackTrace;
                                      logResult.StringValue = "异步获取返回值异常!";
                                      UpdateU9LogProxy(context, logResult, svID);
                                  }

                                  if (result != null
                                      && result.Length > 0
                                      )
                                  {
                                      //string resultXml = EntitySerialization.EntitySerial(result);
                                      string resultXml = Newtonsoft.Json.JsonConvert.SerializeObject(result);

                                      bool flag = result[0] != null ? result[0].flag == 1 : false;
                                      string msg = result[0] != null ? result[0].errMsg : string.Empty;
                                      //try
                                      //{
                                      //    ProxyLogger.UpdateTransferSV(svID, resultXml, flag, msg, string.Empty, string.Empty);
                                      //}
                                      //catch (Exception ex)
                                      //{
                                      //    throw ex;
                                      //}

                                      logResult.Sucessfull = flag;
                                      logResult.Message = msg;
                                      logResult.StringValue = resultXml;
                                      logResult.Trace = string.Empty;

                                      UpdateU9LogProxy(context, logResult,svID);
                                  }
                                  else
                                  {
                                      //ProxyLogger.UpdateTransferSV(svID, string.Empty, false, Const_ResultNullMessage, string.Empty, string.Empty);

                                      logResult.Sucessfull = false;
                                      logResult.Message = Const_ResultNullMessage;
                                      logResult.Trace = string.Empty;
                                      logResult.StringValue = "异步返回值为空!";
                                      UpdateU9LogProxy(context, logResult,svID);
                                  }
                              }
                              //return result;
                          }
                      }
                    , svID);

            }
            catch (Exception ex)
            {
                if (svID > 0)
                {
                    ProxyLogger.UpdateTransferSV(svID, string.Empty, false, ex.Message, string.Empty, ex.StackTrace);
                }

                throw ex;
            }

            return null;
        }
コード例 #2
0
ファイル: PubExtend.cs プロジェクト: HaiBoHan/HBHDaYunsy
        static void service_receiveCompleted(object sender, DMSAsync_PI07.receiveCompletedEventArgs e)
        {
            if (e != null
                )
            {
                long svID = (long)e.UserState;

                if (svID > 0)
                {
                    DMSAsync_PI07.stockDTO[] result = e.Result;
                    if (result != null
                        && result.Length > 0
                        )
                    {
                        //string resultXml = EntitySerialization.EntitySerial(result);
                        string resultXml = Newtonsoft.Json.JsonConvert.SerializeObject(result);

                        bool flag = result[0] != null ? result[0].flag == 1 : false;
                        string msg = result[0] != null ? result[0].errMsg : string.Empty;
                        ProxyLogger.UpdateTransferSV(svID, resultXml, flag, msg, string.Empty, string.Empty);
                    }
                    else
                    {
                        ProxyLogger.UpdateTransferSV(svID, string.Empty, false, Const_ResultNullMessage, string.Empty, string.Empty);
                    }
                }
                //return result;
            }
        }