This commit is contained in:
@@ -98,18 +98,18 @@ namespace AyaNova.Api.Controllers
|
|||||||
if (string.IsNullOrWhiteSpace(tag))
|
if (string.IsNullOrWhiteSpace(tag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
||||||
|
|
||||||
var JobName = $"BulkAdd tag \"{tag}\" on {ayaType} ({idList.Count} specified)";
|
var JobName = $"Bulk operation: Add tag \"{tag}\" on {ayaType} ({idList.Count} specified)";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
|
||||||
idList = idList,
|
idList = idList,
|
||||||
op = "bulk-add",
|
op = "add-tag",
|
||||||
tag = tag
|
tag = tag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.ObjectType = ayaType;
|
||||||
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
@@ -139,17 +139,17 @@ namespace AyaNova.Api.Controllers
|
|||||||
if (string.IsNullOrWhiteSpace(tag))
|
if (string.IsNullOrWhiteSpace(tag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
||||||
|
|
||||||
var JobName = $"BulkAdd tag \"{tag}\" on any {ayaType}";
|
var JobName = $"Bulk operation: Add tag \"{tag}\" on any {ayaType}";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
op = "add-any-tag",
|
||||||
op = "bulk-add-any",
|
|
||||||
tag = tag
|
tag = tag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.ObjectType = ayaType;
|
||||||
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
@@ -181,18 +181,18 @@ namespace AyaNova.Api.Controllers
|
|||||||
if (string.IsNullOrWhiteSpace(tag))
|
if (string.IsNullOrWhiteSpace(tag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
||||||
|
|
||||||
var JobName = $"BulkRemove tag \"{tag}\" from {ayaType} ({idList.Count} specified)";
|
var JobName = $"Bulk operation: Remove tag \"{tag}\" from {ayaType} ({idList.Count} specified)";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
|
||||||
idList = idList,
|
idList = idList,
|
||||||
op = "bulk-remove",
|
op = "remove-tag",
|
||||||
tag = tag
|
tag = tag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.ObjectType = ayaType;
|
||||||
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
@@ -223,17 +223,17 @@ namespace AyaNova.Api.Controllers
|
|||||||
if (string.IsNullOrWhiteSpace(tag))
|
if (string.IsNullOrWhiteSpace(tag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "tag"));
|
||||||
|
|
||||||
var JobName = $"BulkRemove tag \"{tag}\" from any {ayaType}";
|
var JobName = $"Bulk operation: Remove tag \"{tag}\" from any {ayaType}";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
op = "remove-any-tag",
|
||||||
op = "bulk-remove-any",
|
|
||||||
tag = tag
|
tag = tag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.ObjectType = ayaType;
|
||||||
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
@@ -269,19 +269,19 @@ namespace AyaNova.Api.Controllers
|
|||||||
toTag = TagBiz.NormalizeTag(toTag);
|
toTag = TagBiz.NormalizeTag(toTag);
|
||||||
if (string.IsNullOrWhiteSpace(toTag))
|
if (string.IsNullOrWhiteSpace(toTag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "toTag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "toTag"));
|
||||||
var JobName = $"BulkReplace tag \"{fromTag}\" with tag \"{toTag}\" on {ayaType} ({idList.Count} specified)";
|
var JobName = $"Bulk operation: Replace tag \"{fromTag}\" with tag \"{toTag}\" on {ayaType} ({idList.Count} specified)";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
|
||||||
idList = idList,
|
idList = idList,
|
||||||
op = "bulk-replace",
|
op = "replace-tag",
|
||||||
fromTag = fromTag,
|
fromTag = fromTag,
|
||||||
toTag = toTag
|
toTag = toTag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
|
j.ObjectType = ayaType;
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
@@ -316,18 +316,18 @@ namespace AyaNova.Api.Controllers
|
|||||||
if (string.IsNullOrWhiteSpace(toTag))
|
if (string.IsNullOrWhiteSpace(toTag))
|
||||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "toTag"));
|
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_REQUIRED, "toTag"));
|
||||||
|
|
||||||
var JobName = $"BulkReplace tag \"{fromTag}\" with tag \"{toTag}\" on any {ayaType}";
|
var JobName = $"Bulk operation: Replace tag \"{fromTag}\" with tag \"{toTag}\" on any {ayaType}";
|
||||||
JObject o = JObject.FromObject(new
|
JObject o = JObject.FromObject(new
|
||||||
{
|
{
|
||||||
ayaType = ayaType,
|
op = "replace-any-tag",
|
||||||
op = "bulk-replace-any",
|
|
||||||
fromTag = fromTag,
|
fromTag = fromTag,
|
||||||
toTag = toTag
|
toTag = toTag
|
||||||
});
|
});
|
||||||
|
|
||||||
OpsJob j = new OpsJob();
|
OpsJob j = new OpsJob();
|
||||||
j.Name = JobName;
|
j.Name = JobName;
|
||||||
j.JobType = JobType.BulkTag;
|
j.ObjectType = ayaType;
|
||||||
|
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||||
j.Exclusive = false;
|
j.Exclusive = false;
|
||||||
j.JobInfo = o.ToString();
|
j.JobInfo = o.ToString();
|
||||||
await JobsBiz.AddJobAsync(j, ct);
|
await JobsBiz.AddJobAsync(j, ct);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace AyaNova.Biz
|
|||||||
TestWidgetJob = 1,//test job for unit testing
|
TestWidgetJob = 1,//test job for unit testing
|
||||||
CoreJobSweeper = 2,
|
CoreJobSweeper = 2,
|
||||||
SeedTestData = 4,
|
SeedTestData = 4,
|
||||||
BulkTag = 5
|
BulkCoreBizObjectOperation = 5
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -408,8 +408,8 @@ namespace AyaNova.Biz
|
|||||||
case JobType.SeedTestData:
|
case JobType.SeedTestData:
|
||||||
o = (IJobObject)BizObjectFactory.GetBizObject(AyaType.TrialSeeder, ct);
|
o = (IJobObject)BizObjectFactory.GetBizObject(AyaType.TrialSeeder, ct);
|
||||||
break;
|
break;
|
||||||
case JobType.BulkTag:
|
case JobType.BulkCoreBizObjectOperation:
|
||||||
o = (IJobObject)TagBiz.GetBiz(ct);
|
o = (IJobObject)BizObjectFactory.GetBizObject(job.ObjectType, ct);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new System.NotSupportedException($"ProcessJobAsync type {job.JobType.ToString()} is not supported");
|
throw new System.NotSupportedException($"ProcessJobAsync type {job.JobType.ToString()} is not supported");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ using System.Linq;
|
|||||||
namespace AyaNova.Biz
|
namespace AyaNova.Biz
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class TagBiz : BizObject, IJobObject
|
internal class TagBiz : BizObject//, IJobObject
|
||||||
{
|
{
|
||||||
internal TagBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles)
|
internal TagBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles)
|
||||||
{
|
{
|
||||||
@@ -239,37 +239,41 @@ namespace AyaNova.Biz
|
|||||||
#endregion utilities
|
#endregion utilities
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Originally this whole object was just a simple utility class but was going to handle bulk tag jobs here so made it a full biz object
|
||||||
|
//keeping only in case I need to handle some job but in the end this could go back to a simple static utility class if it never pans out
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//JOB / OPERATIONS
|
//JOB / OPERATIONS
|
||||||
//
|
//
|
||||||
public async Task HandleJobAsync(OpsJob job)
|
// public async Task HandleJobAsync(OpsJob job)
|
||||||
{
|
// {
|
||||||
switch (job.JobType)
|
// await Task.CompletedTask;
|
||||||
{
|
// switch (job.JobType)
|
||||||
case JobType.BulkTag:
|
// {
|
||||||
await ProcessBulkJobAsync(job);
|
// // case JobType.BulkCoreBizObjectOperation:
|
||||||
break;
|
// // await ProcessBulkJobAsync(job);
|
||||||
default:
|
// // break;
|
||||||
throw new System.ArgumentOutOfRangeException($"TagBiz.HandleJob-> Invalid job type{job.JobType.ToString()}");
|
// default:
|
||||||
}
|
// throw new System.ArgumentOutOfRangeException($"TagBiz.HandleJob-> Invalid job type{job.JobType.ToString()}");
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
private async Task ProcessBulkJobAsync(OpsJob job)
|
// private async Task ProcessBulkJobAsync(OpsJob job)
|
||||||
{
|
// {
|
||||||
|
|
||||||
//Simulate a long running job here
|
// //Simulate a long running job here
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Running, ct);
|
// await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Running, ct);
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"Tag::BulkJob started...", ct);
|
// await JobsBiz.LogJobAsync(job.GId, $"Tag::BulkJob started...", ct);
|
||||||
|
|
||||||
//get XBiz for type specified
|
// //get XBiz for type specified
|
||||||
//use XBiz to call get then update then save
|
// //use XBiz to call get then update then save
|
||||||
//ideally don't have a huge switch statement with identical code for each object
|
// //ideally don't have a huge switch statement with identical code for each object
|
||||||
|
|
||||||
await JobsBiz.LogJobAsync(job.GId, "Tag::BulkJob completed", ct);
|
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed, ct);
|
|
||||||
|
|
||||||
}
|
// await JobsBiz.LogJobAsync(job.GId, "Tag::BulkJob completed", ct);
|
||||||
|
// await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed, ct);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user