Skip to content

Instantly share code, notes, and snippets.

@IntegerMan
Created September 22, 2019 23:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IntegerMan/30d2e5f9254e9151f4dbe531d88c59e6 to your computer and use it in GitHub Desktop.
Save IntegerMan/30d2e5f9254e9151f4dbe531d88c59e6 to your computer and use it in GitHub Desktop.
private BehaviorResult<CrewContext> ProcessCrewWorkOnItem(CrewContext context, WorkItem ticket)
{
var result = GetWorkOnItemResult(context, ticket);
var message = result.Match(
completed =>
{
ticket.Status = WorkItemStatus.ReadyForReview;
return $"{context.CrewMember.FullName} finishes work on {ticket.Title}";
},
progress =>
{
ticket.ProgressMade++;
return $"{context.CrewMember.FullName} made steady progress on {ticket.Title}";
},
setback =>
{
if (setback.Severity > Priority.Normal)
{
ticket.ProgressMade -= 3;
return $"{context.CrewMember.FullName} encountered a major setback on {ticket.Title}";
}
else
{
ticket.ProgressMade -= 1;
return $"{context.CrewMember.FullName} encountered a setback on {ticket.Title}";
}
});
AddMessage(context, message);
return MatchedResult(context);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment