This commit is contained in:
@@ -98,18 +98,18 @@ namespace AyaNova.Api.Controllers
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
idList = idList,
|
||||
op = "bulk-add",
|
||||
op = "add-tag",
|
||||
tag = tag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.ObjectType = ayaType;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
@@ -139,17 +139,17 @@ namespace AyaNova.Api.Controllers
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
op = "bulk-add-any",
|
||||
op = "add-any-tag",
|
||||
tag = tag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.ObjectType = ayaType;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
@@ -181,18 +181,18 @@ namespace AyaNova.Api.Controllers
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
idList = idList,
|
||||
op = "bulk-remove",
|
||||
op = "remove-tag",
|
||||
tag = tag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.ObjectType = ayaType;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
@@ -223,17 +223,17 @@ namespace AyaNova.Api.Controllers
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
op = "bulk-remove-any",
|
||||
op = "remove-any-tag",
|
||||
tag = tag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.ObjectType = ayaType;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
@@ -269,19 +269,19 @@ namespace AyaNova.Api.Controllers
|
||||
toTag = TagBiz.NormalizeTag(toTag);
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
idList = idList,
|
||||
op = "bulk-replace",
|
||||
op = "replace-tag",
|
||||
fromTag = fromTag,
|
||||
toTag = toTag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.ObjectType = ayaType;
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
@@ -316,18 +316,18 @@ namespace AyaNova.Api.Controllers
|
||||
if (string.IsNullOrWhiteSpace(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
|
||||
{
|
||||
ayaType = ayaType,
|
||||
op = "bulk-replace-any",
|
||||
op = "replace-any-tag",
|
||||
fromTag = fromTag,
|
||||
toTag = toTag
|
||||
});
|
||||
|
||||
OpsJob j = new OpsJob();
|
||||
j.Name = JobName;
|
||||
j.JobType = JobType.BulkTag;
|
||||
j.ObjectType = ayaType;
|
||||
j.JobType = JobType.BulkCoreBizObjectOperation;
|
||||
j.Exclusive = false;
|
||||
j.JobInfo = o.ToString();
|
||||
await JobsBiz.AddJobAsync(j, ct);
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace AyaNova.Biz
|
||||
TestWidgetJob = 1,//test job for unit testing
|
||||
CoreJobSweeper = 2,
|
||||
SeedTestData = 4,
|
||||
BulkTag = 5
|
||||
BulkCoreBizObjectOperation = 5
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -408,8 +408,8 @@ namespace AyaNova.Biz
|
||||
case JobType.SeedTestData:
|
||||
o = (IJobObject)BizObjectFactory.GetBizObject(AyaType.TrialSeeder, ct);
|
||||
break;
|
||||
case JobType.BulkTag:
|
||||
o = (IJobObject)TagBiz.GetBiz(ct);
|
||||
case JobType.BulkCoreBizObjectOperation:
|
||||
o = (IJobObject)BizObjectFactory.GetBizObject(job.ObjectType, ct);
|
||||
break;
|
||||
default:
|
||||
throw new System.NotSupportedException($"ProcessJobAsync type {job.JobType.ToString()} is not supported");
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Linq;
|
||||
namespace AyaNova.Biz
|
||||
{
|
||||
|
||||
internal class TagBiz : BizObject, IJobObject
|
||||
internal class TagBiz : BizObject//, IJobObject
|
||||
{
|
||||
internal TagBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles)
|
||||
{
|
||||
@@ -239,37 +239,41 @@ namespace AyaNova.Biz
|
||||
#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
|
||||
//
|
||||
public async Task HandleJobAsync(OpsJob job)
|
||||
{
|
||||
switch (job.JobType)
|
||||
{
|
||||
case JobType.BulkTag:
|
||||
await ProcessBulkJobAsync(job);
|
||||
break;
|
||||
default:
|
||||
throw new System.ArgumentOutOfRangeException($"TagBiz.HandleJob-> Invalid job type{job.JobType.ToString()}");
|
||||
}
|
||||
}
|
||||
// public async Task HandleJobAsync(OpsJob job)
|
||||
// {
|
||||
// await Task.CompletedTask;
|
||||
// switch (job.JobType)
|
||||
// {
|
||||
// // case JobType.BulkCoreBizObjectOperation:
|
||||
// // await ProcessBulkJobAsync(job);
|
||||
// // break;
|
||||
// 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
|
||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Running, ct);
|
||||
await JobsBiz.LogJobAsync(job.GId, $"Tag::BulkJob started...", ct);
|
||||
// //Simulate a long running job here
|
||||
// await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Running, ct);
|
||||
// await JobsBiz.LogJobAsync(job.GId, $"Tag::BulkJob started...", ct);
|
||||
|
||||
//get XBiz for type specified
|
||||
//use XBiz to call get then update then save
|
||||
//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);
|
||||
// //get XBiz for type specified
|
||||
// //use XBiz to call get then update then save
|
||||
// //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);
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user