feat(jobs): complete workspace draft parity
This commit is contained in:
@@ -281,6 +281,21 @@ namespace JobTrackerApi.Services
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string? UpsertSavedApplicationAnswerDraft(string? notes, string? draft)
|
||||
{
|
||||
var humanNotes = RemoveSavedApplicationAnswerDraft(notes);
|
||||
var answer = (draft ?? string.Empty).Trim();
|
||||
if (string.IsNullOrWhiteSpace(answer))
|
||||
{
|
||||
return string.IsNullOrWhiteSpace(humanNotes) ? null : humanNotes;
|
||||
}
|
||||
|
||||
var answerBlock = $"{ApplicationAnswerDraftStart}\n{answer}\n{ApplicationAnswerDraftEnd}";
|
||||
return string.IsNullOrWhiteSpace(humanNotes)
|
||||
? answerBlock
|
||||
: $"{humanNotes}\n\n{answerBlock}";
|
||||
}
|
||||
|
||||
public static string BuildFollowUpSubject(JobApplication job, Correspondence? lastMessage)
|
||||
{
|
||||
var subject = (lastMessage?.Subject ?? string.Empty).Trim();
|
||||
@@ -467,13 +482,14 @@ namespace JobTrackerApi.Services
|
||||
var value = notes ?? string.Empty;
|
||||
if (string.IsNullOrWhiteSpace(value)) return string.Empty;
|
||||
|
||||
var startIndex = value.IndexOf(ApplicationAnswerDraftStart, StringComparison.Ordinal);
|
||||
var endIndex = value.IndexOf(ApplicationAnswerDraftEnd, StringComparison.Ordinal);
|
||||
if (startIndex >= 0 && endIndex > startIndex)
|
||||
while (true)
|
||||
{
|
||||
var startIndex = value.IndexOf(ApplicationAnswerDraftStart, StringComparison.Ordinal);
|
||||
var endIndex = value.IndexOf(ApplicationAnswerDraftEnd, StringComparison.Ordinal);
|
||||
if (startIndex < 0 || endIndex <= startIndex) break;
|
||||
var before = value[..startIndex].Trim();
|
||||
var after = value[(endIndex + ApplicationAnswerDraftEnd.Length)..].Trim();
|
||||
return string.Join("\n\n", new[] { before, after }.Where(part => !string.IsNullOrWhiteSpace(part))).Trim();
|
||||
value = string.Join("\n\n", new[] { before, after }.Where(part => !string.IsNullOrWhiteSpace(part))).Trim();
|
||||
}
|
||||
|
||||
const string legacyPrefix = "Application answer draft:";
|
||||
|
||||
Reference in New Issue
Block a user