Exemple #1
0
        /// <summary>
        /// 使用 ApiRestModel 风格获取3天气数据
        /// </summary>
        /// <param name="area">地区名称</param>
        /// <returns></returns>
        public static async Task <ApiRestModel <SeniversResult> > GetDailyRestAsync(string area)
        {
            var data = await api.GetDailyRestAsync(new SeniversRequest(area)).Retry(3, TimeSpan.FromSeconds(2))
                       .WhenResult(t => t.State == false)
                       .Handle()
                       .WhenCatch <SeniverserException>(ex =>
            {
                return(ApiRestReulst.False <SeniversResult>(ex.Code));
            });

            return(data);
        }
Exemple #2
0
        /// <summary>
        /// 返回结果处理
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        protected async override Task <object> GetTaskResult(WebApiClient.Contexts.ApiActionContext context)
        {
            var txt = await context.ResponseMessage.Content.ReadAsStringAsync();

            if (txt.Contains("status_code"))
            {
                var err = (ResultError)context.HttpApiConfig.JsonFormatter.Deserialize(txt, typeof(ResultError));
                throw new SeniverserException(err.status_code);
            }
            var data = (SeniversResult)context.HttpApiConfig.JsonFormatter.Deserialize(txt, typeof(SeniversResult));

            return(ApiRestReulst.True(data));
        }
Exemple #3
0
        /// <summary>
        /// 使用 ApiRestModel 风格获取当天天气数据
        /// </summary>
        /// <param name="area">地区名称</param>
        /// <returns></returns>
        public static async Task <ApiRestModel <Daily> > GetTodayRestAsync(string area)
        {
            var data = await api.GetDailyRestAsync(new SeniversRequest(area)).Retry(3, TimeSpan.FromSeconds(2))
                       .WhenResult(t => t.State == false)
                       .Handle()
                       .WhenCatch <SeniverserException>(ex =>
            {
                return(ApiRestReulst.False <SeniversResult>(ex.Code));
            });

            if (!data.State)
            {
                return(ApiRestReulst.False <Daily>((StatusCode)data.Code));
            }

            return(ApiRestReulst.True(data.Data.results.FirstOrDefault().daily.FirstOrDefault()));
        }