/// <summary>
        ///
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        public async Task Invoke(HttpContext httpContext, IEncrypt iencrypt, ILinkingBankService linkingBank)
        {
            _encrypt     = iencrypt;
            _linkingBank = linkingBank;

            try
            {
                var request = httpContext.Request;

                // Test only
                string admin = request.Headers["admin_key"];
                if (!string.IsNullOrWhiteSpace(admin) &&
                    admin.ToLower().Equals("09411a3942454ec9b36e3bcaf1d69f22".ToLower()))
                {
                    await _next(httpContext);

                    return;
                }
                // End Test only

                if (request.Path.Value.ToLower().Contains("api/transactions".ToLower()))
                {
                    var resultCheck = CheckBasicAuthenForPartner(request);
                    if (resultCheck.Item1 != 1)
                    {
                        var obj = new
                        {
                            messageCode = -1,
                            message     = resultCheck.Item2,
                            data        = ""
                        };
                        var response = httpContext.Response;
                        response.ContentType = "application/json";
                        response.StatusCode  = resultCheck.Item1 == 500 ? StatusCodes.Status500InternalServerError : StatusCodes.Status400BadRequest;
                        response.WriteAsync(JsonConvert.SerializeObject(obj)).Wait();
                        return;
                    }
                    await _next(httpContext);
                }
                else
                {
                    if (!CheckBasicAuthen(request))
                    {
                        var response = httpContext.Response;
                        response.ContentType = "application/json";
                        response.StatusCode  = StatusCodes.Status401Unauthorized;
                        return;
                    }
                    await _next(httpContext);
                }
            }
            catch (Exception ex)
            {
                var response = httpContext.Response;
                response.ContentType = "application/json";
                response.StatusCode  = StatusCodes.Status500InternalServerError;
                return;
            }
        }
Exemple #2
0
 public LinkingBankController(ISetting setting, ILinkingBankService service)
 {
     _Setting = setting;
     _Service = service;
 }
 public TransactionsController(ISetting setting, IUserService service, ILinkingBankService bankService)
 {
     _Setting     = setting;
     _Service     = service;
     _bankService = bankService;
 }