improve validation and exception handling in API Controllers
This commit is contained in:
@ -45,15 +45,28 @@ namespace Oqtane.Repository
|
||||
|
||||
public Alias GetAlias(int aliasId)
|
||||
{
|
||||
return _db.Alias.Find(aliasId);
|
||||
return GetAlias(aliasId, true);
|
||||
}
|
||||
|
||||
public Alias GetAlias(string name)
|
||||
public Alias GetAlias(int aliasId, bool tracking)
|
||||
{
|
||||
if (tracking)
|
||||
{
|
||||
return _db.Alias.Find(aliasId);
|
||||
}
|
||||
else
|
||||
{
|
||||
return _db.Alias.AsNoTracking().FirstOrDefault(item => item.AliasId == aliasId);
|
||||
}
|
||||
}
|
||||
|
||||
// lookup alias based on url - note that alias values are hierarchical
|
||||
public Alias GetAlias(string url)
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
List<Alias> aliases = GetAliases().ToList();
|
||||
var segments = name.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var segments = url.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
// iterate segments to find keywords
|
||||
int start = segments.Length;
|
||||
|
@ -9,7 +9,8 @@ namespace Oqtane.Repository
|
||||
Alias AddAlias(Alias alias);
|
||||
Alias UpdateAlias(Alias alias);
|
||||
Alias GetAlias(int aliasId);
|
||||
Alias GetAlias(string name);
|
||||
Alias GetAlias(int aliasId, bool tracking);
|
||||
Alias GetAlias(string url);
|
||||
void DeleteAlias(int aliasId);
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using Oqtane.Models;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
@ -9,6 +9,7 @@ namespace Oqtane.Repository
|
||||
Job AddJob(Job job);
|
||||
Job UpdateJob(Job job);
|
||||
Job GetJob(int jobId);
|
||||
Job GetJob(int jobId, bool tracking);
|
||||
void DeleteJob(int jobId);
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@ -48,6 +48,19 @@ namespace Oqtane.Repository
|
||||
return _db.Job.Find(jobId);
|
||||
}
|
||||
|
||||
public Job GetJob(int jobId, bool tracking)
|
||||
{
|
||||
if (tracking)
|
||||
{
|
||||
return _db.Job.Find(jobId);
|
||||
}
|
||||
else
|
||||
{
|
||||
return _db.Job.AsNoTracking().FirstOrDefault(item => item.JobId == jobId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void DeleteJob(int jobId)
|
||||
{
|
||||
Job job = _db.Job.Find(jobId);
|
||||
|
Reference in New Issue
Block a user