This commit is contained in:
@@ -121,8 +121,8 @@ public class DeveloperApplicationService
|
||||
timezone = application.Timezone,
|
||||
appliedRole = application.Role.ToString(),
|
||||
platforms = application.Platforms,
|
||||
skills = application.Skills ?? "",
|
||||
motivation = application.Motivation,
|
||||
skills = SerializeAssessment(application),
|
||||
motivation = GenerateMotivationSummary(application),
|
||||
status = 0, // Pending
|
||||
silverDeskProvisioned = true
|
||||
};
|
||||
@@ -158,6 +158,64 @@ public class DeveloperApplicationService
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serializes structured assessment data as JSON for the Skills column.
|
||||
/// </summary>
|
||||
internal static string SerializeAssessment(DeveloperApplication app)
|
||||
{
|
||||
object data;
|
||||
|
||||
if (app.Role == ApplicationRole.Tester)
|
||||
{
|
||||
data = new
|
||||
{
|
||||
type = "tester",
|
||||
internetUnderstanding = app.InternetUnderstanding ?? 0,
|
||||
enjoysTesting = app.EnjoysTesting ?? 0,
|
||||
additionalNotes = app.AdditionalNotes ?? ""
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
data = new
|
||||
{
|
||||
type = "developer",
|
||||
experienceRange = app.ExperienceRange ?? "",
|
||||
selectedSkills = app.SelectedSkills,
|
||||
additionalNotes = app.AdditionalNotes ?? ""
|
||||
};
|
||||
}
|
||||
|
||||
return JsonSerializer.Serialize(data, new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generates a human-readable summary for the Motivation field (backward compatibility).
|
||||
/// </summary>
|
||||
internal static string GenerateMotivationSummary(DeveloperApplication app)
|
||||
{
|
||||
if (app.Role == ApplicationRole.Tester)
|
||||
{
|
||||
var summary = $"Internet understanding: {app.InternetUnderstanding}/5, Testing enthusiasm: {app.EnjoysTesting}/5";
|
||||
if (!string.IsNullOrWhiteSpace(app.AdditionalNotes))
|
||||
summary += $". Notes: {app.AdditionalNotes.Trim()}";
|
||||
return summary;
|
||||
}
|
||||
else
|
||||
{
|
||||
var skills = app.SelectedSkills.Count > 0
|
||||
? string.Join(", ", app.SelectedSkills)
|
||||
: "None selected";
|
||||
var summary = $"{app.ExperienceRange} experience. Skills: {skills}";
|
||||
if (!string.IsNullOrWhiteSpace(app.AdditionalNotes))
|
||||
summary += $". Notes: {app.AdditionalNotes.Trim()}";
|
||||
return summary;
|
||||
}
|
||||
}
|
||||
|
||||
private static string ParseRegistrationError(string errorBody)
|
||||
{
|
||||
try
|
||||
@@ -198,15 +256,29 @@ public class DeveloperApplicationService
|
||||
sb.AppendLine($"**Platforms:** {string.Join(", ", app.Platforms)}");
|
||||
sb.AppendLine();
|
||||
|
||||
if (app.Role == ApplicationRole.Developer && !string.IsNullOrWhiteSpace(app.Skills))
|
||||
if (app.Role == ApplicationRole.Tester)
|
||||
{
|
||||
sb.AppendLine("**Skills & Experience:**");
|
||||
sb.AppendLine(app.Skills);
|
||||
sb.AppendLine("### Assessment");
|
||||
sb.AppendLine($"- Internet understanding: {"*".PadLeft(app.InternetUnderstanding ?? 0, '*')}{new string('-', 5 - (app.InternetUnderstanding ?? 0))} ({app.InternetUnderstanding}/5)");
|
||||
sb.AppendLine($"- Testing enthusiasm: {"*".PadLeft(app.EnjoysTesting ?? 0, '*')}{new string('-', 5 - (app.EnjoysTesting ?? 0))} ({app.EnjoysTesting}/5)");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendLine("### Skills & Experience");
|
||||
sb.AppendLine($"**Experience:** {app.ExperienceRange}");
|
||||
sb.AppendLine();
|
||||
if (app.SelectedSkills.Count > 0)
|
||||
{
|
||||
sb.AppendLine($"**Technologies:** {string.Join(", ", app.SelectedSkills)}");
|
||||
}
|
||||
}
|
||||
|
||||
sb.AppendLine("**Motivation:**");
|
||||
sb.AppendLine(app.Motivation);
|
||||
if (!string.IsNullOrWhiteSpace(app.AdditionalNotes))
|
||||
{
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("### Additional Notes");
|
||||
sb.AppendLine(app.AdditionalNotes.Trim());
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user