Ejemplo n.º 1
0
        public async Task <ActionResult> Test([FromBody] AdminRequest model)
        {
            if (model.Key != _adminSettings.Key)
            {
                ModelState.AddModelError("key", "認證錯誤");
            }
            if (string.IsNullOrEmpty(model.Cmd))
            {
                ModelState.AddModelError("cmd", "指令錯誤");
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            if (model.Cmd.EqualTo("remove-bill"))
            {
                var billView = JsonConvert.DeserializeObject <BillViewModel>(model.Data);
                _testsService.RemoveBill(billView.Id);

                return(Ok());
            }
            else if (model.Cmd.EqualTo("remove-subsrcibes"))
            {
                await _testsService.RemoveSubsrcibesFromUserAsync();

                await _testsService.RemoveBillsFromUserAsync();

                return(Ok());
            }
            else if (model.Cmd.EqualTo("fake-pay"))
            {
                var tradeResultModel = JsonConvert.DeserializeObject <TradeResultModel>(model.Data);

                var subscribe = await _subscribesService.StorePayAsync(tradeResultModel);

                if (subscribe != null)
                {
                    //付款訂閱完成
                    BackgroundJob.Enqueue(() => NotifyUserAsync(subscribe.UserId));
                }

                return(Ok("1|OK"));
            }
            else if (model.Cmd.EqualTo("login"))
            {
                var responseView = await _testsService.LoginAsync(RemoteIpAddress);

                return(Ok(responseView));
            }
            else
            {
                ModelState.AddModelError("cmd", "指令錯誤");
                return(BadRequest(ModelState));
            }
        }