Kanban
This commit is contained in:
Mike Phares 2023-10-20 12:31:59 -07:00
parent 61334d690b
commit 4712ad4e7b
13 changed files with 59 additions and 40 deletions

2
.gitignore vendored
View File

@ -339,3 +339,5 @@ ASALocalRun/
!**/.vscode/tasks.json !**/.vscode/tasks.json
*.lnk *.lnk
Adaptation/.kanbn

View File

@ -1,7 +1,7 @@
--- ---
type: "kanbn" type: "kanbn"
created: 2023-07-07T15:37:56.040Z created: "2023-10-20T05:13:53.986Z"
updated: 2023-07-18T19:52:59.668Z updated: "2023-10-20T05:13:53.987Z"
startedColumns: startedColumns:
- 'In Progress' - 'In Progress'
completedColumns: completedColumns:

View File

@ -1,10 +1,10 @@
--- ---
created: 2023-05-27T14:11:17.265Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:25:10.299Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] started: "2023-05-27T14:17:47.867Z"
started: 2023-05-27T14:17:47.867Z type: "note"
--- ---
# Get All API # Get All API

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:12:23.972Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:18:00.018Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# Get One API # Get One API

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:14:11.591Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:14:11.582Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# In tab form text area to paste over Excel # In tab form text area to paste over Excel

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:14:31.083Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:14:31.076Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# List record that are different # List record that are different

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:14:43.826Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:14:43.819Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# List records that are out of sync # List records that are out of sync

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:16:12.555Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:16:12.547Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# List UAT Tasks that are no longer in Excel # List UAT Tasks that are no longer in Excel

View File

@ -1,10 +1,10 @@
--- ---
created: 2023-05-27T14:13:06.940Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:17:56.583Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] started: "2023-05-27T14:17:56.583Z"
started: 2023-05-27T14:17:56.583Z type: "note"
--- ---
# nginx Static HTML in old school form # nginx Static HTML in old school form

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:12:09.089Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:12:09.080Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# Post one to User Story # Post one to User Story

View File

@ -1,10 +1,10 @@
--- ---
created: 2023-05-27T14:29:10.454Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:32:05.873Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 1 progress: 1
tags: [] completed: "2023-05-27T00:00:00.000Z"
completed: 2023-05-27T00:00:00.000Z type: "note"
--- ---
# Remove StaticFile Controller # Remove StaticFile Controller

View File

@ -1,9 +1,9 @@
--- ---
created: 2023-05-27T14:17:35.499Z created: "2023-06-23T20:27:00.000Z"
updated: 2023-05-27T14:17:35.492Z updated: "2023-06-23T20:27:00.000Z"
assigned: "" assigned: ""
progress: 0 progress: 0
tags: [] type: "note"
--- ---
# Switch to Infragistics Data Grid # Switch to Infragistics Data Grid

View File

@ -199,12 +199,29 @@ public class ProcessData : IProcessData
return result; return result;
} }
private static string GetTitle(FIBacklogMesa fiBacklogMesa)
{
string result = $"{fiBacklogMesa.Req} - {fiBacklogMesa.Subject.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)[0]}";
if (result.Length > 128)
result = result.Substring(0, 127);
return result;
}
private static string GetTitle(FIBacklogMesa fiBacklogMesa, ValueWithReq valueWithReq)
{
string result = $"{valueWithReq.Req} - {fiBacklogMesa.Subject.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)[0]}";
if (result.Length > 128)
result = result.Substring(0, 127);
return result;
}
private static string? GetMappedState(FIBacklogMesa fiBacklogMesa) => private static string? GetMappedState(FIBacklogMesa fiBacklogMesa) =>
fiBacklogMesa.Status == "CMP" ? "Closed" : fiBacklogMesa.Status == "UAT" ? "Resolved" : fiBacklogMesa.Status == "In process" ? "Active" : null; fiBacklogMesa.Status == "CMP" ? "Closed" : fiBacklogMesa.Status == "UAT" ? "Resolved" : fiBacklogMesa.Status == "In process" ? "Active" : null;
private static void SetSyncTag(WorkItemTrackingHttpClient workItemTrackingHttpClient, ReadOnlyDictionary<string, string> requestorNameToUser, Dictionary<string, FIBacklogMesa> keyToFIBacklogMesa, ReadOnlyCollection<ValueWithReq> valueWithReqCollection) private static void SetSyncTag(WorkItemTrackingHttpClient workItemTrackingHttpClient, ReadOnlyDictionary<string, string> requestorNameToUser, Dictionary<string, FIBacklogMesa> keyToFIBacklogMesa, ReadOnlyCollection<ValueWithReq> valueWithReqCollection)
{ {
string key; string key;
string title;
int priority; int priority;
bool isBugFix; bool isBugFix;
string? state; string? state;
@ -223,6 +240,7 @@ public class ProcessData : IProcessData
if (!keyToFIBacklogMesa.TryGetValue(key, out fiBacklogMesa)) if (!keyToFIBacklogMesa.TryGetValue(key, out fiBacklogMesa))
continue; continue;
tags = GetTags(fiBacklogMesa); tags = GetTags(fiBacklogMesa);
title = GetTitle(fiBacklogMesa, valueWithReq);
isBugFix = fiBacklogMesa.Priority == "0 - BugFix"; isBugFix = fiBacklogMesa.Priority == "0 - BugFix";
_ = requestorNameToUser.TryGetValue(fiBacklogMesa.Requestor, out string? requestorUser); _ = requestorNameToUser.TryGetValue(fiBacklogMesa.Requestor, out string? requestorUser);
if (!string.IsNullOrEmpty(requestorUser) && (valueWithReq.Value.Fields.SystemAssignedTo is null || !valueWithReq.Value.Fields.SystemAssignedTo.UniqueName.Equals(requestorUser, StringComparison.CurrentCultureIgnoreCase))) if (!string.IsNullOrEmpty(requestorUser) && (valueWithReq.Value.Fields.SystemAssignedTo is null || !valueWithReq.Value.Fields.SystemAssignedTo.UniqueName.Equals(requestorUser, StringComparison.CurrentCultureIgnoreCase)))
@ -230,7 +248,7 @@ public class ProcessData : IProcessData
Update(workItemTrackingHttpClient, sync, valueWithReq); Update(workItemTrackingHttpClient, sync, valueWithReq);
continue; continue;
} }
if (valueWithReq.Value.Fields.SystemTitle != $"{valueWithReq.Req} - {fiBacklogMesa.Subject}") if (valueWithReq.Value.Fields.SystemTitle != title)
{ {
Update(workItemTrackingHttpClient, sync, valueWithReq); Update(workItemTrackingHttpClient, sync, valueWithReq);
continue; continue;
@ -487,10 +505,11 @@ public class ProcessData : IProcessData
JsonPatchDocument result = new(); JsonPatchDocument result = new();
if (uatWorkItemTask.Result.Id is null) if (uatWorkItemTask.Result.Id is null)
throw new NotSupportedException(); throw new NotSupportedException();
string title = GetTitle(fiBacklogMesa);
AddPatch(result, "/relations/-", new WorkItemRelation() { Rel = "System.LinkTypes.Hierarchy-Forward", Url = uatWorkItemTask.Result.Url }); AddPatch(result, "/relations/-", new WorkItemRelation() { Rel = "System.LinkTypes.Hierarchy-Forward", Url = uatWorkItemTask.Result.Url });
AddPatch(result, "/fields/System.AreaPath", project); AddPatch(result, "/fields/System.AreaPath", project);
AddPatch(result, "/fields/System.IterationPath", project); AddPatch(result, "/fields/System.IterationPath", project);
AddPatch(result, "/fields/System.Title", $"{fiBacklogMesa.Req} - {fiBacklogMesa.Subject}"); AddPatch(result, "/fields/System.Title", title);
string? state = GetMappedState(fiBacklogMesa); string? state = GetMappedState(fiBacklogMesa);
if (!string.IsNullOrEmpty(state)) if (!string.IsNullOrEmpty(state))
AddPatch(result, "/fields/System.State", state); AddPatch(result, "/fields/System.State", state);
@ -563,10 +582,8 @@ public class ProcessData : IProcessData
JsonPatchDocument result = new(); JsonPatchDocument result = new();
if (userStoryWorkItemTask?.Result.Id is null) if (userStoryWorkItemTask?.Result.Id is null)
throw new NotSupportedException(); throw new NotSupportedException();
string title = GetTitle(fiBacklogMesa);
int priority = GetPriority(fiBacklogMesa); int priority = GetPriority(fiBacklogMesa);
string title = $"{fiBacklogMesa.Req} - {fiBacklogMesa.Subject}";
if (title.Length > 128)
title = title.Substring(0, 127);
AddPatch(result, "/relations/-", new WorkItemRelation() { Rel = "System.LinkTypes.Hierarchy-Forward", Url = userStoryWorkItemTask.Result.Url }); AddPatch(result, "/relations/-", new WorkItemRelation() { Rel = "System.LinkTypes.Hierarchy-Forward", Url = userStoryWorkItemTask.Result.Url });
AddPatch(result, "/fields/System.AreaPath", project); AddPatch(result, "/fields/System.AreaPath", project);
if (tags.Count > 0) if (tags.Count > 0)