This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -53,7 +53,7 @@
|
||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
||||
"AYANOVA_SERVER_TEST_MODE": "true",
|
||||
"AYANOVA_SERVER_TEST_MODE": "false",
|
||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace AyaNova.Api.Controllers
|
||||
/// <param name="inObj"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut("{id}")]
|
||||
public async Task<IActionResult> PutDataListSavedFilter([FromRoute] long id, [FromBody] DataListSavedFilter inObj)
|
||||
public async Task<IActionResult> PutDataListSavedFilter([FromBody] DataListSavedFilter inObj)
|
||||
{
|
||||
if (!serverState.IsOpen)
|
||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||
@@ -114,7 +114,7 @@ namespace AyaNova.Api.Controllers
|
||||
//Instantiate the business object handler
|
||||
DataListSavedFilterBiz biz = DataListSavedFilterBiz.GetBiz(ct, HttpContext);
|
||||
|
||||
var o = await biz.GetAsync(id, false);
|
||||
var o = await biz.GetAsync(inObj.Id, false);
|
||||
if (o == null)
|
||||
return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace AyaNova.Api.Controllers
|
||||
}
|
||||
catch (DbUpdateConcurrencyException)
|
||||
{
|
||||
if (!await biz.ExistsAsync(id))
|
||||
if (!await biz.ExistsAsync(inObj.Id))
|
||||
return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
|
||||
else
|
||||
return StatusCode(409, new ApiErrorResponse(ApiErrorCode.CONCURRENCY_CONFLICT));
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace AyaNova.Biz
|
||||
//CREATE
|
||||
internal async Task<DataListSavedFilter> CreateAsync(DataListSavedFilter inObj)
|
||||
{
|
||||
await ValidateAsync(inObj, true);
|
||||
Validate(inObj, true);
|
||||
if (HasErrors)
|
||||
return null;
|
||||
else
|
||||
@@ -134,11 +134,11 @@ namespace AyaNova.Biz
|
||||
internal async Task<List<NameIdDefaultItem>> GetViewListAsync(string listKey)
|
||||
{
|
||||
await EnsureDefaultAsync(listKey);
|
||||
return await ct.DataListSavedFilter
|
||||
.AsNoTracking()
|
||||
.Where(z => z.ListKey == listKey && (z.Public == true || z.UserId == UserId))
|
||||
.OrderBy(z => z.Name)
|
||||
.Select(z => new NameIdDefaultItem(z.Id, z.Name, z.DefaultFilter)).ToListAsync();
|
||||
return await ct.DataListSavedFilter
|
||||
.AsNoTracking()
|
||||
.Where(z => z.ListKey == listKey && (z.Public == true || z.UserId == UserId))
|
||||
.OrderBy(z => z.Name)
|
||||
.Select(z => new NameIdDefaultItem(z.Id, z.Name, z.DefaultFilter)).ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ namespace AyaNova.Biz
|
||||
//this will allow EF to check it out
|
||||
ct.Entry(dbObject).OriginalValues["Concurrency"] = inObj.Concurrency;
|
||||
|
||||
await ValidateAsync(dbObject, false);
|
||||
Validate(dbObject, false);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
await ct.SaveChangesAsync();
|
||||
@@ -233,7 +233,7 @@ namespace AyaNova.Biz
|
||||
//
|
||||
|
||||
//Can save or update?
|
||||
private async Task ValidateAsync(DataListSavedFilter inObj, bool isNew)
|
||||
private void Validate(DataListSavedFilter inObj, bool isNew)
|
||||
{
|
||||
|
||||
//UserId required
|
||||
@@ -243,23 +243,23 @@ namespace AyaNova.Biz
|
||||
AddError(ApiErrorCode.VALIDATION_REQUIRED, "UserId");
|
||||
}
|
||||
|
||||
//can't save a filter for someone else
|
||||
if (inObj.UserId != UserId && inObj.Public == false)
|
||||
{
|
||||
AddError(ApiErrorCode.NOT_AUTHORIZED, "generalerror", "Can only save private filters for self not other UserId's");
|
||||
return;
|
||||
}
|
||||
|
||||
//technically not "validation" but always ensure default filter has - name
|
||||
if (inObj.DefaultFilter)
|
||||
{
|
||||
inObj.Name = "-";
|
||||
}
|
||||
|
||||
//Name required
|
||||
if (string.IsNullOrWhiteSpace(inObj.Name))
|
||||
AddError(ApiErrorCode.VALIDATION_REQUIRED, "Name");
|
||||
|
||||
|
||||
//If name is otherwise OK, check that name is unique
|
||||
if (!PropertyHasErrors("Name"))
|
||||
{
|
||||
//Use Any command is efficient way to check existance, it doesn't return the record, just a true or false
|
||||
if (await ct.DataListSavedFilter.AnyAsync(z => z.Name == inObj.Name && z.Id != inObj.Id))
|
||||
{
|
||||
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, "Name");
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(inObj.Filter))
|
||||
AddError(ApiErrorCode.VALIDATION_REQUIRED, "Filter");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user