public async Task Milestone(DateTimeOffset eventDate, MilestonePayload payload) { var updater = new DataUpdater(_contextFactory, _mapper); await updater.UpdateRepositories(eventDate, new[] { payload.Repository }); switch (payload.Action) { case "created": case "closed": case "opened": case "edited": await updater.UpdateMilestones(payload.Repository.Id, eventDate, new[] { payload.Milestone }); break; case "deleted": await updater.DeleteMilestone(payload.Milestone.Id); break; default: throw new NotImplementedException($"Action '{payload.Action}' is not valid for event {nameof(Milestone)}."); } await updater.Changes.Submit(_queueClient); }