public async Task <MiscGrpcResponse> GetSiteStatAsync(MiscGrpcRequest request, CallContext context = default)
    {
        var response = new MiscGrpcResponse();

        try
        {
            if (request.Site == LaobianSite.Jarvis)
            {
                response.SiteStat = await _jarvisHttpClient.GetSiteStatAsync();
            }
            else if (request.Site == LaobianSite.Blog)
            {
                response.SiteStat = await _blogHttpClient.GetSiteStatAsync();
            }
            else if (request.Site == LaobianSite.Api)
            {
                response.SiteStat = SiteStatHelper.Get();
            }
            else
            {
                response.IsOk    = false;
                response.Message = $"Getting site {request.Site} stat not supported.";
            }
        }
        catch (Exception ex)
        {
            response.IsOk    = false;
            response.Message = ex.Message;
            _logger.LogError(ex, $"{nameof(GetSiteStatAsync)} failed.");
        }

        return(response);
    }
    public async Task <ApiResponse <SiteStat> > GetSiteStatAsync([FromQuery] string site)
    {
        var apiResponse = new ApiResponse <SiteStat>();

        try
        {
            if (Enum.TryParse <LaobianSite>(site, true, out var s))
            {
                if (s == LaobianSite.Admin)
                {
                    apiResponse.Content = SiteStatHelper.Get();
                }
                else
                {
                    var response = await _miscGrpcService.GetSiteStatAsync(new MiscGrpcRequest { Site = s });

                    if (response.IsOk)
                    {
                        apiResponse.Content = response.SiteStat;
                    }
                    else
                    {
                        apiResponse.IsOk    = false;
                        apiResponse.Message = response.Message;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            apiResponse.IsOk    = false;
            apiResponse.Message = ex.Message;
            _logger.LogError(ex, $"Get site {site} stat failed.");
        }

        return(apiResponse);
    }
Esempio n. 3
0
 public SiteStat GetSiteStat()
 {
     return(SiteStatHelper.Get());
 }