From 933b5ce459ce121521f02dadb290388807019f09 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 16 May 2020 21:41:27 +0000 Subject: [PATCH] --- server/AyaNova/Controllers/TagController.cs | 48 +++++++++---------- server/AyaNova/biz/JobType.cs | 2 +- server/AyaNova/biz/JobsBiz.cs | 4 +- server/AyaNova/biz/TagBiz.cs | 52 +++++++++++---------- 4 files changed, 55 insertions(+), 51 deletions(-) diff --git a/server/AyaNova/Controllers/TagController.cs b/server/AyaNova/Controllers/TagController.cs index 5459f55e..d88b8f1c 100644 --- a/server/AyaNova/Controllers/TagController.cs +++ b/server/AyaNova/Controllers/TagController.cs @@ -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); diff --git a/server/AyaNova/biz/JobType.cs b/server/AyaNova/biz/JobType.cs index b0767c03..bcc43988 100644 --- a/server/AyaNova/biz/JobType.cs +++ b/server/AyaNova/biz/JobType.cs @@ -11,7 +11,7 @@ namespace AyaNova.Biz TestWidgetJob = 1,//test job for unit testing CoreJobSweeper = 2, SeedTestData = 4, - BulkTag = 5 + BulkCoreBizObjectOperation = 5 } diff --git a/server/AyaNova/biz/JobsBiz.cs b/server/AyaNova/biz/JobsBiz.cs index f28a1f33..45e5724a 100644 --- a/server/AyaNova/biz/JobsBiz.cs +++ b/server/AyaNova/biz/JobsBiz.cs @@ -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"); diff --git a/server/AyaNova/biz/TagBiz.cs b/server/AyaNova/biz/TagBiz.cs index 45cbd679..a0a857ea 100644 --- a/server/AyaNova/biz/TagBiz.cs +++ b/server/AyaNova/biz/TagBiz.cs @@ -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); + + // }