Files
linqpad/SonarQube API/Quboo Integration API.linq
T

74 lines
2.1 KiB
C#

<Query Kind="Program">
<NuGetReference>RestSharp</NuGetReference>
<Namespace>RestSharp</Namespace>
<Namespace>Newtonsoft.Json</Namespace>
</Query>
void Main()
{
Score(Severity.Critical, 5, 18).Dump();
ScoreAlt(Severity.Critical, 5, 18).Dump();
awardPoints("jchau", Severity.Critical, 5, 18);
Score(Severity.Major, 15, 5).Dump();
ScoreAlt(Severity.Major, 15, 5).Dump();
awardPoints("jchau", Severity.Major, 15, 5);
Score(Severity.Major, 15, 4).Dump();
awardPoints("jpollard", Severity.Major, 15, 4);
Score(Severity.Major, 10, 2).Dump();
awardPoints("aschey", Severity.Major, 10, 2);
Score(Severity.Major, 10).Dump();
awardPoints("tscanlan", Severity.Major, 10);
}
// Define other methods and classes here
public enum Severity
{
Info = 1,
Minor = 2,
Major = 5,
Critical = 7,
Blocker = 10
}
public int Score(Severity severity, int debt, int items = 1)
{
$"Math.Max(1, {debt} / 10 * {(int)severity}) * {items} items".Dump();
return Math.Max(1, debt / 10 * (int)severity) * items;
}
public int ScoreAlt(Severity severity, int debt, int items = 1)
{
$"Math.Max(1, {debt} * {(int)severity} / 10) * {items} items".Dump();
return Math.Max(1, debt * (int)severity / 10) * items;
}
public void awardPoints(string playerLogin, Severity severity, int debt, int items = 1)
{
string BaseUrl = @"https://api.quboo.io/score/generic";
RestClient client = new RestClient();
client.BaseUrl = new Uri(BaseUrl);
RestRequest request = new RestRequest();
request.Method = Method.PUT;
request.AddHeader("x-quboo-access-key", "FgtzhUSwAdsf4sGpM0kzXePP");
request.AddHeader("x-quboo-secret-key", "AwzF8dreEwkGemRS");
request.AddHeader("Content-Type", " application/json");
var qubooBody = new
{
playerLogin = playerLogin,
uniqueId = Guid.NewGuid(),
description = $"Resolving {items} {debt}min {severity} items",
score = Score(severity, debt, items)
};
request.AddJsonBody(qubooBody);
var result = client.Execute(request);
if (!result.IsSuccessful && result.ErrorMessage != null)
{
result.ErrorMessage.Dump();
}
else
{
JsonConvert.SerializeObject(JsonConvert.DeserializeObject(result.Content), Newtonsoft.Json.Formatting.Indented).Dump();
}
}