public async Task <ActionResult> FinishedEditing(FinishEditingViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                var response = await Orchestrator.GetFinishEditingViewModel(viewModel.HashedAccountId, OwinWrapper.GetClaimValue(@"sub"), viewModel.HashedCommitmentId);

                return(View(response));
            }

            if (viewModel.SaveStatus.IsSend())
            {
                return(RedirectToAction("SubmitExistingCommitment",
                                        new { viewModel.HashedAccountId, viewModel.HashedCommitmentId, viewModel.SaveStatus }));
            }

            if (viewModel.SaveStatus.IsFinalApproval())
            {
                var userDisplayName = OwinWrapper.GetClaimValue(DasClaimTypes.DisplayName);
                var userEmail       = OwinWrapper.GetClaimValue(DasClaimTypes.Email);
                var userId          = OwinWrapper.GetClaimValue(@"sub");
                await Orchestrator.ApproveCommitment(viewModel.HashedAccountId, userId, userDisplayName, userEmail, viewModel.HashedCommitmentId, viewModel.SaveStatus);

                return(RedirectToAction("Approved",
                                        new { viewModel.HashedAccountId, viewModel.HashedCommitmentId }));
            }

            var flashmessage = new FlashMessageViewModel
            {
                Headline = "Details saved but not sent",
                Severity = FlashMessageSeverityLevel.Info
            };

            AddFlashMessageToCookie(flashmessage);

            return(RedirectToAction("YourCohorts", new { hashedAccountId = viewModel.HashedAccountId }));
        }