public JsonResult ChangeLanguageStatus(int ID, bool disable = true) { JsonResult json = new JsonResult(); try { var language = LanguagesService.Instance.GetLanguageByID(ID); if (language == null) { throw new Exception("Dashboard.Languages.Action.Validation.LanguageNotFound".LocalizedString()); } if (disable) { if (language.IsDefault) { throw new Exception("Dashboard.Languages.Action.Validation.DefaultLanguageCantBeDisabled".LocalizedString()); } language.IsEnabled = false; } else { language.IsEnabled = true; } if (!LanguagesService.Instance.UpdateLanguage(language)) { throw new Exception("Dashboard.Languages.Action.Validation.UnableToUpdateLanguage".LocalizedString()); } var enabledLanguages = LanguagesService.Instance.GetLanguages(enabledLanguagesOnly: true); LanguagesHelper.LoadLanguages(enabledLanguages: enabledLanguages, defaultLanguage: enabledLanguages.FirstOrDefault(x => x.IsDefault)); json.Data = new { Success = true }; } catch (Exception ex) { json.Data = new { Success = false, Message = ex.Message }; } return(json); }
public JsonResult Action(LanguageActionViewModel model) { JsonResult json = new JsonResult(); try { if (model.ID > 0) { var language = LanguagesService.Instance.GetLanguageByID(model.ID); if (language == null) { throw new Exception("Dashboard.Languages.Action.Validation.LanguageNotFound".LocalizedString()); } language.ID = model.ID; language.Name = model.Name; language.ShortCode = model.ShortCode; language.IsEnabled = model.IsEnabled; if (language.IsDefault && !model.IsDefault) { throw new Exception("Dashboard.Languages.Action.Validation.DefaultLanguageIsMust".LocalizedString()); } var makeDefault = false; if (model.IsDefault) { if (!language.IsDefault) { language.IsDefault = true; makeDefault = true; } } else { language.IsDefault = false; } language.IsRTL = model.IsRTL; language.IconCode = model.IconCode; if (!LanguagesService.Instance.UpdateLanguage(language, makeDefault)) { throw new Exception("Dashboard.Languages.Action.Validation.UnableToUpdateLanguage".LocalizedString()); } } else { var language = new Language { Name = model.Name, ShortCode = model.ShortCode, IsEnabled = model.IsEnabled, IsDefault = model.IsDefault, IsRTL = model.IsRTL, IconCode = model.IconCode }; var makeDefault = false; if (model.IsDefault) { language.IsDefault = true; makeDefault = true; } else { language.IsDefault = false; } if (!LanguagesService.Instance.AddLanguage(language, makeDefault)) { throw new Exception("Dashboard.Languages.Action.Validation.UnableToCreateLanguage".LocalizedString()); } } var enabledLanguages = LanguagesService.Instance.GetLanguages(enabledLanguagesOnly: true); LanguagesHelper.LoadLanguages(enabledLanguages: enabledLanguages, defaultLanguage: enabledLanguages.FirstOrDefault(x => x.IsDefault)); json.Data = new { Success = true }; } catch (Exception ex) { json.Data = new { Success = false, Message = ex.Message }; } return(json); }