/// <summary> /// Creates a record of contact from the potential employer. /// </summary> /// <param name="contents"></param> /// <param name="author"></param> /// <param name="received">When this contact took place.</param> /// <returns></returns> public Result <JobApplicationNote> RecordEmployerContact(string contents, string author = "", string subject = "", DateTime?received = null) { var note = new JobApplicationNote(this) { Author = (string.IsNullOrWhiteSpace(author)) ? OrganizationName : author, Timestamp = received ?? DateTime.Now, Contents = contents }; ((List <JobApplicationNote>)Notes).Add(note); return(Result.Ok(note)); }
/// <summary> /// Records a note about this application. /// </summary> /// <param name="contents"></param> /// <returns></returns> public Result <JobApplicationNote> AddNote(string contents) { var note = new JobApplicationNote(this) { Author = "self", Timestamp = DateTime.Now, Contents = contents }; ((List <JobApplicationNote>)Notes).Add(note); return(Result.Ok(note)); }
/// <summary> /// Adds an interview record to this job application. /// </summary> /// <param name="start"></param> /// <param name="interviewMedium">What medium the interview took place over. See <see cref="InterviewTypes"/> for standard mediums.</param> /// <param name="interviewers"></param> public Result <JobApplicationNote> ScheduleInterview(DateTime start, string interviewMedium, IEnumerable <string> interviewers, TimeSpan duration, string description = "") { var interview = new JobApplicationNote(this) { Timestamp = start, Author = OrganizationName, Contents = $"Interview<br/>Start time: ${start}<br />Duration: ${duration}<br />Medium: ${interviewMedium}<br />Interviewers: ${string.Join(',', interviewers)}", }; if (!string.IsNullOrWhiteSpace(description)) { interview.Contents += $"<br />{description}"; } ((List <JobApplicationNote>)Notes).Add(interview); return(Result.Ok(interview)); }
public Result RemoveNote(JobApplicationNote applicationEvent) { var removed = ((List <JobApplicationNote>)Notes).Remove(applicationEvent); return(Result.FailIf(!removed, "")); }