public override string ToString()
{
var list = new List<KeyValuePair<string, string>>();
list.Add(Pair("provider", Provider.Name));
list.Add(Pair("project", Project));
list.Add(Pair("user", User));
list.Add(Pair("status", Status));
if (NoOnCommitFinished)
list.Add(Pair("noOnCommitFinished", "true"));
list.Add(Pair("commitTemplate", CommitTemplate));
return string.Join(";",
list
.Where(e => e.Value.Length > 0)
.Select(e => e.Key + "=" + (e.Value.Contains(';') || e.Value.Contains('"') ? '"' + e.Value.Replace("\"", "\\\"") + '"' : e.Value))
.ToArray());
}