コード例 #1
0
        public async Task <IActionResult> AddCoin(AddCoinRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var response = await _mediator.Send(new AddCoinCommand(request.CurrencyCode.ToCurrencyCode(), request.AmountInCents));

            if (response.HasErrors)
            {
                ModelState.AddErrors(response.GetErrorMessages());
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
コード例 #2
0
        /// <summary>
        /// 为视频投币
        /// </summary>
        /// <param name="aid">av号</param>
        /// <param name="multiply">投币数量</param>
        /// <param name="select_like">是否同时点赞 1是0否</param>
        /// <returns>是否投币成功</returns>
        public bool DoAddCoinForVideo(string aid, int multiply, bool select_like, string title = "")
        {
            BiliApiResponse result;

            try
            {
                var request = new AddCoinRequest(long.Parse(aid), _biliBiliCookie.BiliJct);
                request.Multiply    = multiply;
                request.Select_like = select_like ? 1 : 0;
                result = _videoApi.AddCoinForVideo(request)
                         .GetAwaiter().GetResult();
            }
            catch (Exception)
            {
                return(false);
            }

            if (result.Code == 0)
            {
                _expDic.TryGetValue("每日投币", out int exp);
                _logger.LogInformation("投币成功,经验+{exp} √", exp);
                return(true);
            }

            if (_donateContinueStatusDic.Any(x => x.Key == result.Code.ToString()))
            {
                _logger.LogError("投币失败,原因:{msg}", result.Message);
                return(false);
            }

            else
            {
                string errorMsg = $"投币发生未预计异常:{result.Message}";
                _logger.LogError(errorMsg);
                throw new Exception(errorMsg);
            }
        }