public IActionResult DeleteNameGet(long organisationId, long nameId)
        {
            Organisation     organisation = dataRepository.Get <Organisation>(organisationId);
            OrganisationName name         = organisation.OrganisationNames.FirstOrDefault(oa => oa.OrganisationNameId == nameId);

            if (name == null)
            {
                throw new Exception($"Name ID {nameId} is not a valid name for this Organisation");
            }

            var viewModel = new DeleteOrganisationNameViewModel
            {
                Organisation = organisation,
                OrganisationNameToBeDeleted = name
            };

            return(View("DeleteNameCheck", viewModel));
        }
        public IActionResult DeleteNamePost(long organisationId, long nameId, DeleteOrganisationNameViewModel viewModel)
        {
            Organisation     organisation = dataRepository.Get <Organisation>(organisationId);
            OrganisationName name         = organisation.OrganisationNames.FirstOrDefault(oa => oa.OrganisationNameId == nameId);

            if (name == null)
            {
                throw new Exception($"Name ID {nameId} is not a valid name for this Organisation");
            }

            viewModel.ParseAndValidateParameters(Request, m => m.Reason);

            if (viewModel.HasAnyErrors())
            {
                viewModel.Organisation = organisation;
                viewModel.OrganisationNameToBeDeleted = name;
                return(View("DeleteNameCheck", viewModel));
            }

            auditLogger.AuditChangeToOrganisation(
                AuditedAction.AdminDeleteOrganisationPreviousName,
                organisation,
                new
            {
                DeletedName            = name.Name,
                DeletedNameId          = name.OrganisationNameId,
                DeletedNameSource      = name.Source,
                DeletedNameCreatedDate = name.Created.ToString("d MMM yyyy"),
                Reason = viewModel.Reason
            },
                User);

            dataRepository.Delete(name);
            dataRepository.SaveChanges();

            return(View("SuccessfullyDeletedOrganisationName", organisation));
        }