public async Task <HttpActionResult <DeploymentResult, bool> > Report([FromBody] DeploymentResult deploymentResult) => await this.WithResponseContainer(
            deploymentResult,
            async result =>
        {
            string sourceIp            = Request?.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            result.AgentInfo.IpAddress = sourceIp;
            long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            result.AgentInfo.LastUpdate = now;

            List <DeploymentResult> deploymentResults = await RedisDatabase.GetAsync <List <DeploymentResult> >(CacheKeys.DeploymentResults);
            deploymentResults = deploymentResults ?? new List <DeploymentResult>();
            deploymentResults.Add(result);
            await RedisDatabase.ReplaceAsync(CacheKeys.DeploymentResults, deploymentResults);
            return(true);
        });