public IActionResult DeleteByPost(
			int personNameId)
		{
			var name =
				_personData
					.GetPersonNameWithNavigation(
						personNameId);

			if (name == null)
				return NotFound();

			_personData.DeletePersonName(name);
			_personData.AdjustAllNameWeights(name.PersonId);

			//
			// Update RDF
			//

			var readPerson =
				_personData.ReadAllPersonData(name.Person.PersonGuid);
			if (readPerson != null)
				_rdfData.AddOrUpdatePerson(readPerson);

			//
			// Update search index
			//

			var names = new List<string>();

			var person =
				_personData
					.ReadPersonWithNames(
						name.Person.PersonGuid);

			foreach (var n in person.Names.OrderByDescending(x => x.NameWeight))
			{
				var fullName =
					string.Join(" ", new[]
					{
						n.Prefix,
						n.First,
						n.Middle,
						n.Last,
						n.Suffix
					}.Where(x => !string.IsNullOrWhiteSpace(x)).ToArray());

				names.Add(fullName);
			}

			// TODO try catch to handle errors
			_personSearchIndex.MergeNames(
				person.PersonGuid.ToString(),
				names.ToArray());

			//
			// Redirect
			//

			return RedirectToAction(
				"Details",
				"Person",
				new { personGuid = name.Person.PersonGuid });
		}