/// <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); }
/// <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)); }
/// <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())); }