diff --git a/roles/lib/files/FWO.Api.Client/Data/WfReqTaskBase.cs b/roles/lib/files/FWO.Api.Client/Data/WfReqTaskBase.cs
index ee3ce83cb..24efb8689 100644
--- a/roles/lib/files/FWO.Api.Client/Data/WfReqTaskBase.cs
+++ b/roles/lib/files/FWO.Api.Client/Data/WfReqTaskBase.cs
@@ -16,6 +16,7 @@ public struct AdditionalInfoKeys
{
public const string ConnId = "ConnId";
public const string ReqOwner = "ReqOwner";
+ public const string GrpName = "GrpName";
}
public class WfReqTaskBase : WfTaskBase
diff --git a/roles/lib/files/FWO.Report/ReportAppRules.cs b/roles/lib/files/FWO.Report/ReportAppRules.cs
index 1f48f44ed..28846c5de 100644
--- a/roles/lib/files/FWO.Report/ReportAppRules.cs
+++ b/roles/lib/files/FWO.Report/ReportAppRules.cs
@@ -132,6 +132,7 @@ private async Task GetAppServers(ApiConnection apiConnection)
{
relevantObjects.Add(obj);
found = true;
+ break;
}
}
}
@@ -220,6 +221,7 @@ private void PrepareFilter(ManagementReport mgt)
}
}
}
+ mgt.RelevantObjectIds = mgt.RelevantObjectIds.Distinct().ToList();
mgt.HighlightedObjectIds = mgt.HighlightedObjectIds.Distinct().ToList();
}
diff --git a/roles/ui/files/FWO.UI/Pages/Request/DisplayRequestTask.razor b/roles/ui/files/FWO.UI/Pages/Request/DisplayRequestTask.razor
index f67828125..501338ea6 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/DisplayRequestTask.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/DisplayRequestTask.razor
@@ -161,6 +161,17 @@
}
}
}
+ else if(actTaskType == TaskType.group_create)
+ {
+
+ }
@if(actTaskType == TaskType.generic)
{
@@ -262,6 +273,26 @@
{
}
+ else if(actTaskType == TaskType.group_create)
+ {
+
+ @if (WfHandler.EditReqTaskMode)
+ {
+
+ }
+ else
+ {
+
+ @foreach(var source in actSources.Where(x => (x.NetworkId == null || x.NetworkId == 0)))
+ {
+
+
+
+ }
+
+ }
+
+ }
@if(!WfHandler.EditReqTaskMode)
{
@@ -271,7 +302,7 @@
@if(WfHandler.PlanReqTaskMode || WfHandler.ApproveReqTaskMode)
{
+ @(ModellingHandlerBase.DisplayButton(userConfig, "add_comment", Icons.Add))
}
@@ -412,6 +443,7 @@
private Tracking? actTracking;
private FwoOwner? actOwner;
private FwoOwner? oldOwner;
+ private string? actGrpName;
private bool firstParamSet = false;
@@ -452,6 +484,7 @@
{
oldOwner = actOwner;
}
+ actGrpName = WfHandler.GetAddInfoValue(AdditionalInfoKeys.GrpName);
}
firstParamSet = false;
}
@@ -656,6 +689,12 @@
{
WfHandler.ActReqTask.RequestAction = RequestAction.delete.ToString();
}
+ else if(actTaskType == TaskType.group_create)
+ {
+ Dictionary
? addInfo = new() { {AdditionalInfoKeys.GrpName, actGrpName} };
+ WfHandler.ActReqTask.AdditionalInfo = System.Text.Json.JsonSerializer.Serialize(addInfo);
+ }
+
UpdateElements();
if (await CheckTaskValues())
{
@@ -728,6 +767,14 @@
}
}
}
+ else if (actTaskType == TaskType.group_create)
+ {
+ if (actGrpName == null || actGrpName == "" || actSources.Count == 0)
+ {
+ DisplayMessageInUi(null, userConfig.GetText("save_task"), userConfig.GetText("E5102"), true);
+ return false;
+ }
+ }
return true;
}
}
diff --git a/roles/ui/files/FWO.UI/Pages/Request/RequestApprovals.razor b/roles/ui/files/FWO.UI/Pages/Request/RequestApprovals.razor
index e1354c566..1bb4a4f14 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/RequestApprovals.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/RequestApprovals.razor
@@ -73,7 +73,7 @@ else
{
if(long.TryParse(TicketId, out long ticketId))
{
- string newPhase = await wfHandler.HandleExtTicketId(WorkflowPhases.approval, ticketId);
+ string newPhase = await wfHandler.HandleInjectedTicketId(WorkflowPhases.approval, ticketId);
if(newPhase != "")
{
NavigationManager.NavigateTo($"/request/{newPhase.ToString()}s/{TicketId}");
diff --git a/roles/ui/files/FWO.UI/Pages/Request/RequestImplementations.razor b/roles/ui/files/FWO.UI/Pages/Request/RequestImplementations.razor
index 90583b761..fb17dd05b 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/RequestImplementations.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/RequestImplementations.razor
@@ -91,7 +91,7 @@ else
{
if(long.TryParse(TicketId, out long ticketId))
{
- string newPhase = await wfHandler.HandleExtTicketId(WorkflowPhases.implementation, ticketId);
+ string newPhase = await wfHandler.HandleInjectedTicketId(WorkflowPhases.implementation, ticketId);
if(newPhase != "")
{
NavigationManager.NavigateTo($"/request/{newPhase.ToString()}s/{TicketId}");
diff --git a/roles/ui/files/FWO.UI/Pages/Request/RequestPlannings.razor b/roles/ui/files/FWO.UI/Pages/Request/RequestPlannings.razor
index e1b58d5b3..395b39f94 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/RequestPlannings.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/RequestPlannings.razor
@@ -73,7 +73,7 @@ else
{
if(long.TryParse(TicketId, out long ticketId))
{
- string newPhase = await wfHandler.HandleExtTicketId(WorkflowPhases.planning, ticketId);
+ string newPhase = await wfHandler.HandleInjectedTicketId(WorkflowPhases.planning, ticketId);
if(newPhase != "")
{
NavigationManager.NavigateTo($"/request/{newPhase.ToString()}s/{TicketId}");
diff --git a/roles/ui/files/FWO.UI/Pages/Request/RequestReviews.razor b/roles/ui/files/FWO.UI/Pages/Request/RequestReviews.razor
index 7fa3286dc..28bbc44dd 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/RequestReviews.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/RequestReviews.razor
@@ -86,7 +86,7 @@ else
{
if(long.TryParse(TicketId, out long ticketId))
{
- string newPhase = await wfHandler.HandleExtTicketId(WorkflowPhases.review, ticketId);
+ string newPhase = await wfHandler.HandleInjectedTicketId(WorkflowPhases.review, ticketId);
if(newPhase != "")
{
NavigationManager.NavigateTo($"/request/{newPhase.ToString()}s/{TicketId}");
diff --git a/roles/ui/files/FWO.UI/Pages/Request/RequestTickets.razor b/roles/ui/files/FWO.UI/Pages/Request/RequestTickets.razor
index 60fb6718d..4a0f7388d 100644
--- a/roles/ui/files/FWO.UI/Pages/Request/RequestTickets.razor
+++ b/roles/ui/files/FWO.UI/Pages/Request/RequestTickets.razor
@@ -70,7 +70,7 @@ else
{
if(long.TryParse(TicketId, out long ticketId))
{
- string newPhase = await wfHandler.HandleExtTicketId(WorkflowPhases.request, ticketId);
+ string newPhase = await wfHandler.HandleInjectedTicketId(WorkflowPhases.request, ticketId);
if(newPhase != "")
{
NavigationManager.NavigateTo($"/request/{newPhase.ToString()}s/{TicketId}");
diff --git a/roles/ui/files/FWO.UI/Services/ActionHandler.cs b/roles/ui/files/FWO.UI/Services/ActionHandler.cs
index ed37caf62..0b89b02ca 100644
--- a/roles/ui/files/FWO.UI/Services/ActionHandler.cs
+++ b/roles/ui/files/FWO.UI/Services/ActionHandler.cs
@@ -10,17 +10,17 @@ public class ActionHandler
{
private List states = [];
private readonly ApiConnection apiConnection;
- private readonly WfHandler requestHandler = new ();
+ private readonly WfHandler wfHandler = new ();
private string? ScopedUserTo { get; set; } = "";
private string? ScopedUserCc { get; set; } = "";
public bool DisplayConnectionMode = false;
public ModellingConnectionHandler? ConnHandler { get; set; }
- public ActionHandler(ApiConnection apiConnection, WfHandler requestHandler)
+ public ActionHandler(ApiConnection apiConnection, WfHandler wfHandler)
{
this.apiConnection = apiConnection;
- this.requestHandler = requestHandler;
+ this.wfHandler = wfHandler;
}
public async Task Init()
@@ -49,7 +49,7 @@ public async Task DoStateChangeActions(WfStatefulObject statefulObject, WfObject
List stateActions = GetRelevantActions(statefulObject, scope);
foreach(var action in stateActions.Where(x => x.Event == StateActionEvents.OnSet.ToString()))
{
- if(action.Phase == "" || action.Phase == requestHandler.Phase.ToString())
+ if(action.Phase == "" || action.Phase == wfHandler.Phase.ToString())
{
await PerformAction(action, statefulObject, scope, owner, ticketId);
}
@@ -57,7 +57,7 @@ public async Task DoStateChangeActions(WfStatefulObject statefulObject, WfObject
List fromStateActions = GetRelevantActions(statefulObject, scope, false);
foreach(var action in fromStateActions.Where(x => x.Event == StateActionEvents.OnLeave.ToString()))
{
- if(action.Phase == "" || action.Phase == requestHandler.Phase.ToString())
+ if(action.Phase == "" || action.Phase == wfHandler.Phase.ToString())
{
await PerformAction(action, statefulObject, scope, owner, ticketId);
}
@@ -93,19 +93,19 @@ public async Task PerformAction(WfStateAction action, WfStatefulObject statefulO
int? toState = action.ExternalParams != "" ? Convert.ToInt32(action.ExternalParams) : null;
if(toState == null || states.FirstOrDefault(x => x.Id == toState) != null)
{
- await requestHandler.AutoPromote(statefulObject, scope, toState);
+ await wfHandler.AutoPromote(statefulObject, scope, toState);
}
break;
case nameof(StateActionTypes.AddApproval):
await SetScope(statefulObject, scope);
- await requestHandler.AddApproval(action.ExternalParams);
+ await wfHandler.AddApproval(action.ExternalParams);
break;
case nameof(StateActionTypes.SetAlert):
await SetAlert(action.ExternalParams);
break;
case nameof(StateActionTypes.TrafficPathAnalysis):
await SetScope(statefulObject, scope);
- await requestHandler.HandlePathAnalysisAction(action.ExternalParams);
+ await wfHandler.HandlePathAnalysisAction(action.ExternalParams);
break;
case nameof(StateActionTypes.ExternalCall):
await CallExternal(action);
@@ -145,7 +145,7 @@ public async Task SendEmail(WfStateAction action, WfStatefulObject statefulObjec
{
EmailActionParams emailActionParams = System.Text.Json.JsonSerializer.Deserialize(action.ExternalParams) ?? throw new Exception("Extparams could not be parsed.");
await SetScope(statefulObject, scope, emailActionParams);
- EmailHelper emailHelper = new(apiConnection, requestHandler.MiddlewareClient, requestHandler.userConfig, DefaultInit.DoNothing);
+ EmailHelper emailHelper = new(apiConnection, wfHandler.MiddlewareClient, wfHandler.userConfig, DefaultInit.DoNothing);
await emailHelper.Init(ScopedUserTo, ScopedUserCc);
if(owner != null)
{
@@ -167,8 +167,8 @@ public async Task CreateConnection(WfStateAction action, FwoOwner? owner)
Log.WriteDebug("CreateConnection", "Perform Action");
// try
// {
- // ModellingConnection proposedInterface = new(){ IsInterface = true, IsRequested = true, TicketId = requestHandler.ActTicket.Id };
- // ModellingConnectionHandler ConnHandler = new (apiConnection, requestHandler.userConfig, requestHandler.ActReqTask.Owners.First().Owner, new(), proposedInterface, true, false, DefaultInit.DoNothing, false);
+ // ModellingConnection proposedInterface = new(){ IsInterface = true, IsRequested = true, TicketId = wfHandler.ActTicket.Id };
+ // ModellingConnectionHandler ConnHandler = new (apiConnection, wfHandler.userConfig, wfHandler.ActReqTask.Owners.First().Owner, new(), proposedInterface, true, false, DefaultInit.DoNothing, false);
// apiConnection.SetProperRole(user, [Roles.Modeller, Roles.Admin]);
// await ConnHandler.CreateNewRequestedInterface();
// apiConnection.SwitchBack());
@@ -186,7 +186,7 @@ public async Task UpdateConnectionOwner(FwoOwner? owner, long? ticketId)
{
if(owner != null && ticketId != null) // todo: role check
{
- apiConnection.SetProperRole(requestHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
+ apiConnection.SetProperRole(wfHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
List Connections = await apiConnection.SendQueryAsync>(ModellingQueries.getConnectionsByTicketId, new { ticketId });
foreach(var conn in Connections)
{
@@ -199,7 +199,7 @@ public async Task UpdateConnectionOwner(FwoOwner? owner, long? ticketId)
};
await apiConnection.SendQueryAsync(ModellingQueries.updateConnectionOwner, Variables);
await ModellingHandlerBase.LogChange(ModellingTypes.ChangeType.Update, ModellingTypes.ModObjectType.Connection, conn.Id,
- $"Updated {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, requestHandler.userConfig, owner.Id, DefaultInit.DoNothing);
+ $"Updated {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, wfHandler.userConfig, owner.Id, DefaultInit.DoNothing);
}
}
apiConnection.SwitchBack();
@@ -218,13 +218,13 @@ public async Task UpdateConnectionPublish(FwoOwner? owner, long? ticketId)
{
if(owner != null && ticketId != null) // todo: role check
{
- apiConnection.SetProperRole(requestHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
+ apiConnection.SetProperRole(wfHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
List Connections = await apiConnection.SendQueryAsync>(ModellingQueries.getConnectionsByTicketId, new { ticketId });
foreach(var conn in Connections)
{
if(conn.IsRequested && !conn.IsPublished)
{
- ConnHandler = new (apiConnection, requestHandler.userConfig, owner, [], conn, true, false, DefaultInit.DoNothing, DefaultInit.DoNothing, false);
+ ConnHandler = new (apiConnection, wfHandler.userConfig, owner, [], conn, true, false, DefaultInit.DoNothing, DefaultInit.DoNothing, false);
await ConnHandler.PartialInit();
if(ConnHandler.CheckConn())
{
@@ -236,7 +236,7 @@ public async Task UpdateConnectionPublish(FwoOwner? owner, long? ticketId)
};
await apiConnection.SendQueryAsync(ModellingQueries.updateConnectionPublish, Variables);
await ModellingHandlerBase.LogChange(ModellingTypes.ChangeType.Update, ModellingTypes.ModObjectType.Connection, conn.Id,
- $"Updated {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, requestHandler.userConfig, owner.Id, DefaultInit.DoNothing);
+ $"Updated {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, wfHandler.userConfig, owner.Id, DefaultInit.DoNothing);
}
}
}
@@ -256,7 +256,7 @@ public async Task UpdateConnectionReject(FwoOwner? owner, long? ticketId)
{
if(owner != null && ticketId != null)
{
- apiConnection.SetProperRole(requestHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
+ apiConnection.SetProperRole(wfHandler.AuthUser, [Roles.Modeller, Roles.Admin]);
List Connections = await apiConnection.SendQueryAsync>(ModellingQueries.getConnectionsByTicketId, new { ticketId });
foreach(var conn in Connections)
{
@@ -270,7 +270,7 @@ public async Task UpdateConnectionReject(FwoOwner? owner, long? ticketId)
};
await apiConnection.SendQueryAsync(ModellingQueries.updateConnectionProperties, Variables);
await ModellingHandlerBase.LogChange(ModellingTypes.ChangeType.Update, ModellingTypes.ModObjectType.Connection, conn.Id,
- $"Rejected {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, requestHandler.userConfig, owner.Id, DefaultInit.DoNothing);
+ $"Rejected {(conn.IsInterface? "Interface" : "Connection")}: {conn.Name}", apiConnection, wfHandler.userConfig, owner.Id, DefaultInit.DoNothing);
}
}
apiConnection.SwitchBack();
@@ -288,20 +288,20 @@ public async Task DisplayConnection(WfStatefulObject statefulObject, WfObjectSco
{
Log.WriteDebug("DisplayConnection", "Perform Action");
await SetScope(statefulObject, scope);
- WfReqTask? reqTask = requestHandler.ActTicket.Tasks.FirstOrDefault(x => x.TaskType == TaskType.new_interface.ToString());
+ WfReqTask? reqTask = wfHandler.ActTicket.Tasks.FirstOrDefault(x => x.TaskType == TaskType.new_interface.ToString());
if(reqTask != null)
{
- requestHandler.SetReqTaskEnv(reqTask);
+ wfHandler.SetReqTaskEnv(reqTask);
}
- FwoOwner? owner = requestHandler.ActReqTask.Owners?.First()?.Owner;
- if(owner != null && requestHandler.GetAddInfoIntValue(AdditionalInfoKeys.ConnId) != null)
+ FwoOwner? owner = wfHandler.ActReqTask.Owners?.First()?.Owner;
+ if(owner != null && wfHandler.GetAddInfoIntValue(AdditionalInfoKeys.ConnId) != null)
{
- apiConnection.SetProperRole(requestHandler.AuthUser, [Roles.Modeller, Roles.Admin, Roles.Auditor]);
+ apiConnection.SetProperRole(wfHandler.AuthUser, [Roles.Modeller, Roles.Admin, Roles.Auditor]);
List Connections = await apiConnection.SendQueryAsync>(ModellingQueries.getConnections, new { appId = owner?.Id });
- ModellingConnection? conn = Connections.FirstOrDefault(c => c.Id == requestHandler.GetAddInfoIntValue(AdditionalInfoKeys.ConnId));
+ ModellingConnection? conn = Connections.FirstOrDefault(c => c.Id == wfHandler.GetAddInfoIntValue(AdditionalInfoKeys.ConnId));
if(conn != null)
{
- ConnHandler = new ModellingConnectionHandler(apiConnection, requestHandler.userConfig, owner ?? new(), Connections, conn, false, true, DefaultInit.DoNothing, DefaultInit.DoNothing, false);
+ ConnHandler = new ModellingConnectionHandler(apiConnection, wfHandler.userConfig, owner ?? new(), Connections, conn, false, true, DefaultInit.DoNothing, DefaultInit.DoNothing, false);
await ConnHandler.Init();
DisplayConnectionMode = true;
}
@@ -366,37 +366,37 @@ private async Task SetScope(WfStatefulObject statefulObject, WfObjectScopes scop
switch(scope)
{
case WfObjectScopes.Ticket:
- requestHandler.SetTicketEnv((WfTicket)statefulObject);
- SetCommenter(emailActionParams, requestHandler.ActTicket.Comments);
+ wfHandler.SetTicketEnv((WfTicket)statefulObject);
+ SetCommenter(emailActionParams, wfHandler.ActTicket.Comments);
if(emailActionParams?.RecipientTo == EmailRecipientOption.Requester)
{
- ScopedUserTo = requestHandler.ActTicket.Requester?.Dn;
+ ScopedUserTo = wfHandler.ActTicket.Requester?.Dn;
}
if(emailActionParams?.RecipientCC == EmailRecipientOption.Requester)
{
- ScopedUserCc = requestHandler.ActTicket.Requester?.Dn;
+ ScopedUserCc = wfHandler.ActTicket.Requester?.Dn;
}
break;
case WfObjectScopes.RequestTask:
- requestHandler.SetReqTaskEnv((WfReqTask)statefulObject);
- SetCommenter(emailActionParams, requestHandler.ActReqTask.Comments);
+ wfHandler.SetReqTaskEnv((WfReqTask)statefulObject);
+ SetCommenter(emailActionParams, wfHandler.ActReqTask.Comments);
break;
case WfObjectScopes.ImplementationTask:
- requestHandler.SetImplTaskEnv((WfImplTask)statefulObject);
- SetCommenter(emailActionParams, requestHandler.ActImplTask.Comments);
+ wfHandler.SetImplTaskEnv((WfImplTask)statefulObject);
+ SetCommenter(emailActionParams, wfHandler.ActImplTask.Comments);
break;
case WfObjectScopes.Approval:
- if(requestHandler.SetReqTaskEnv(((WfApproval)statefulObject).TaskId))
+ if(wfHandler.SetReqTaskEnv(((WfApproval)statefulObject).TaskId))
{
- await requestHandler.SetApprovalEnv(null, false);
- SetCommenter(emailActionParams, requestHandler.ActApproval.Comments);
+ await wfHandler.SetApprovalEnv(null, false);
+ SetCommenter(emailActionParams, wfHandler.ActApproval.Comments);
if(emailActionParams?.RecipientTo == EmailRecipientOption.Approver)
{
- ScopedUserTo = requestHandler.ActApproval.ApproverDn;
+ ScopedUserTo = wfHandler.ActApproval.ApproverDn;
}
if(emailActionParams?.RecipientCC == EmailRecipientOption.Approver)
{
- ScopedUserCc = requestHandler.ActApproval.ApproverDn;
+ ScopedUserCc = wfHandler.ActApproval.ApproverDn;
}
}
break;
diff --git a/roles/ui/files/FWO.UI/Services/TicketCreator.cs b/roles/ui/files/FWO.UI/Services/TicketCreator.cs
index 0c162f2af..642c97b6c 100644
--- a/roles/ui/files/FWO.UI/Services/TicketCreator.cs
+++ b/roles/ui/files/FWO.UI/Services/TicketCreator.cs
@@ -27,6 +27,45 @@ public TicketCreator(ApiConnection apiConnection, UserConfig userConfig, System.
this.apiConnection = apiConnection;
}
+ public async Task CreateTicket(FwoOwner owner, List reqTasks, string title, string reason = "")
+ {
+ await wfHandler.Init([owner.Id]);
+ stateId = wfHandler.MasterStateMatrix.LowestEndState;
+ wfHandler.SelectTicket(new WfTicket()
+ {
+ StateId = stateId,
+ Title = title,
+ Requester = userConfig.User,
+ Reason = reason
+ },
+ ObjAction.add);
+ foreach(var reqTask in reqTasks)
+ {
+ wfHandler.SelectReqTask(new WfReqTask()
+ {
+ StateId = stateId,
+ Title = reqTask.Title,
+ TaskType = reqTask.TaskType,
+ Owners = [new() { Owner = owner }],
+ Reason = reqTask.Reason,
+ Elements = reqTask.Elements,
+ AdditionalInfo = reqTask.AdditionalInfo
+ },
+ ObjAction.add);
+ await wfHandler.AddApproval(JsonSerializer.Serialize(new ApprovalParams(){StateId = wfHandler.MasterStateMatrix.LowestEndState}));
+ wfHandler.ActTicket.Tasks.Add(wfHandler.ActReqTask);
+ }
+ wfHandler.AddTicketMode = true;
+ long ticketId = await wfHandler.SaveTicket(wfHandler.ActTicket);
+ return wfHandler.ActTicket;
+ }
+
+ public async Task GetTicket(FwoOwner owner, long ticketId)
+ {
+ await wfHandler.Init([owner.Id]);
+ return await wfHandler.ResolveTicket(ticketId);
+ }
+
public async Task CreateRequestNewInterfaceTicket(FwoOwner owner, FwoOwner requestingOwner, string reason = "")
{
await wfHandler.Init([owner.Id]);
diff --git a/roles/ui/files/FWO.UI/Services/WfHandler.cs b/roles/ui/files/FWO.UI/Services/WfHandler.cs
index af3de7e68..76bf3507a 100644
--- a/roles/ui/files/FWO.UI/Services/WfHandler.cs
+++ b/roles/ui/files/FWO.UI/Services/WfHandler.cs
@@ -3,6 +3,7 @@
using FWO.Api.Client;
using FWO.Api.Client.Queries;
using FWO.Middleware.Client;
+using FWO.Logging;
namespace FWO.Ui.Services
{
@@ -226,7 +227,7 @@ public void SetContinueEnv(ObjAction action)
return AllTicketList.FirstOrDefault(x => x.Id == ticketId);
}
- public async Task HandleExtTicketId(WorkflowPhases phase, long ticketId)
+ public async Task HandleInjectedTicketId(WorkflowPhases phase, long ticketId)
{
WfTicket? ticket = await ResolveTicket(ticketId);
if(ticket != null)
@@ -655,7 +656,15 @@ public async Task SetAddInfoInReqTask(WfReqTask reqTask, string key, string newV
{
if(ActReqTask.AdditionalInfo != null && ActReqTask.AdditionalInfo != "")
{
- return System.Text.Json.JsonSerializer.Deserialize>(ActReqTask.AdditionalInfo);
+ try
+ {
+ return System.Text.Json.JsonSerializer.Deserialize>(ActReqTask.AdditionalInfo);
+ }
+ catch(Exception)
+ {
+ Log.WriteInfo("Get Additional Info","Could not deserialize. No valid content.");
+ return null;
+ }
}
return null;
}
diff --git a/roles/ui/files/FWO.UI/Shared/PopUp.razor b/roles/ui/files/FWO.UI/Shared/PopUp.razor
index 700b9e750..fc6fc0a5f 100644
--- a/roles/ui/files/FWO.UI/Shared/PopUp.razor
+++ b/roles/ui/files/FWO.UI/Shared/PopUp.razor
@@ -6,7 +6,7 @@