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