示例#1
0
        public ApiResultObject <T> GetRO <T>(string uri, ApiConsumer consumer, CommonParam commonParam, object filter, int?timeout, params object[] listParam)
        {
            ApiResultObject <T> result = null;

            try
            {
                if (timeout.HasValue)
                {
                    result = consumer.Get <ApiResultObject <T> >(uri, commonParam, filter, timeout.Value, listParam);
                }
                else
                {
                    result = consumer.Get <ApiResultObject <T> >(uri, commonParam, filter, listParam);
                }

                if (result != null)
                {
                    if (result.Param != null)
                    {
                        this.param.Messages.AddRange(result.Param.Messages);
                        this.param.BugCodes.AddRange(result.Param.BugCodes);
                    }
                }

                if (result == null || !result.Success || result.Data == null)
                {
                    this.Input      = LogUtil.TraceData("\n     + filter", filter) + LogUtil.TraceData("\n     + CommonParam", commonParam) + LogUtil.TraceData("\n     + listParam", listParam);
                    this.RequestUrl = String.Format(uriFormat, consumer.GetBaseUri(), uri);
                    Logging(JsonConvert.SerializeObject(result), LogType.Error);
                }
            }
            catch (ApiException ex)
            {
                LogSystem.Error(LogUtil.TraceData("StatusCode: ", ex.StatusCode));
                LogSystem.Error(ex);
                if (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
                {
                    this.param.Messages.Add(STR_CANNOT_CONNECT_TO_SERVER);
                }
                else if (ex.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    param.Messages.Add(STR_SESSION_TIMEOUT);
                    param.HasException = true;
                }
            }
            catch (AggregateException ex)
            {
                LogSystem.Error(ex);
                this.param.Messages.Add(STR_CANNOT_CONNECT_TO_SERVER);
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
            }
            return(result);
        }