Edit languages to set default.
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@ -9,9 +12,6 @@ using Oqtane.Infrastructure;
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Repository;
|
||||
using Oqtane.Shared;
|
||||
using System.Linq;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Oqtane.Controllers
|
||||
{
|
||||
@ -102,6 +102,24 @@ namespace Oqtane.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut]
|
||||
[Authorize(Roles = RoleNames.Admin)]
|
||||
public void Put([FromBody] Language language)
|
||||
{
|
||||
if (ModelState.IsValid && language.SiteId == _alias.SiteId)
|
||||
{
|
||||
_languages.UpdateLanguage(language);
|
||||
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Language, language.LanguageId, SyncEventActions.Update);
|
||||
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Create, "Language Updated {Language}", language);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized Language Put Attempt {Language}", language);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Authorize(Roles = RoleNames.Admin)]
|
||||
public Language Post([FromBody] Language language)
|
||||
|
@ -9,6 +9,8 @@ namespace Oqtane.Repository
|
||||
|
||||
Language AddLanguage(Language language);
|
||||
|
||||
void UpdateLanguage(Language language);
|
||||
|
||||
Language GetLanguage(int languageId);
|
||||
|
||||
void DeleteLanguage(int languageId);
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Oqtane.Models;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
@ -12,7 +13,7 @@ namespace Oqtane.Repository
|
||||
{
|
||||
_db = context;
|
||||
}
|
||||
|
||||
|
||||
public IEnumerable<Language> GetLanguages(int siteId)
|
||||
{
|
||||
return _db.Language.Where(l => l.SiteId == siteId);
|
||||
@ -35,6 +36,25 @@ namespace Oqtane.Repository
|
||||
return language;
|
||||
}
|
||||
|
||||
public void UpdateLanguage(Language language)
|
||||
{
|
||||
if (language.LanguageId != 0)
|
||||
{
|
||||
_db.Entry(language).State = EntityState.Modified;
|
||||
}
|
||||
if (language.IsDefault)
|
||||
{
|
||||
// Ensure all other languages are not set to default
|
||||
_db.Language
|
||||
.Where(l => l.SiteId == language.SiteId &&
|
||||
l.LanguageId != language.LanguageId)
|
||||
.ToList()
|
||||
.ForEach(l => l.IsDefault = false);
|
||||
}
|
||||
|
||||
_db.SaveChanges();
|
||||
}
|
||||
|
||||
public Language GetLanguage(int languageId)
|
||||
{
|
||||
return _db.Language.Find(languageId);
|
||||
|
Reference in New Issue
Block a user