Nancy非同期使用法
7761 ワード
, Nancy
, , Before
namespace CxyAdvert.Base { public class BaseNancyModel : Nancy.NancyModule { public BaseNancyModel() { Get["/"] = param => { return "ADVERT SYSTEM"; }; } public BaseNancyModel(string path) : base(path) { Before += async (context, token) => { return await VerifyAuth(context); }; //After += async (context, token) => //{ // await VerifyAuth(context); //}; }
////// Before , null , Response /// /// ///
private async Task VerifyAuth(Nancy.NancyContext nancyContext) { try { var httpMethod = nancyContext.Request.Method; if (httpMethod.ToUpper() == "POST") { var requestParms = HttpHelper.GetPostValue(nancyContext.Request.Body); if (requestParms == "") { return Response.AsJson(new ResultMsg() { code = -2, errormsg = " " }); } else { } } return null; } catch (Exception error) { Logger.Error("BaseNancyModel ERROR:" + error); return Response.AsJson(new ResultMsg() { code = -2, errormsg = error.Message }); } } public object GetEncryptValue(object msg) { var strJson = JsonConvert.SerializeObject(msg, StringFormat.jsonSerializerSettings); return strJson ; } } }
, BaseNancyModel,GetEncryptValue BaseNancyModel
namespace CxyAdvert { public class AdvertSericeApi : BaseNancyModel { public AdvertSericeApi() : base("/cxy/api/advert/") { IAdvertSerice service = new AdvertSerice(); Post["getshowadverts", true] = async (param, token) => { return GetEncryptValue(await service.GetShowAdverts(BaseInputParam, ThridUser)); }; Post["getadverts", true] = async (param, token) => { return GetEncryptValue(await service.GetAdverts(BaseInputParam, ThridUser)); }; } } }