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