public ActionResult Delete(long?parentId, long id)
        {
            var language = _languageRepository.GetById(id);

            //ensure we have at least one published language
            var allLanguages = _languageService.GetAllLanguages();

            if (allLanguages.Count == 1 && allLanguages[0].Id == language.Id)
            {
                ModelState.AddModelError("Language", _localizationService.GetResource("Language.PublishedLanguageRequired"));
            }

            if (!_languageService.IsDeactivable(language))
            {
                ModelState.AddModelError("Language", _localizationService.GetResource("Common.NotDeactivable"));
            }

            if (ModelState.IsValid)
            {
                //soft delete
                _languageService.Deactivate(language);
                _languageService.UpdateLanguage(language);
                //notification
                SuccessNotification(_localizationService.GetResource("Record.Deleted"));
                return(new NullJsonResult());
            }
            else
            {
                return(Json(new { Errors = ModelState.SerializeErrors() }));
            }
        }