Files
monorepo/LCU.API.Internal.DocumentIngestor/LCU.Library.Internal.DocumentIngestorModels/Models/ProcessResult.cs
T
2026-03-25 14:50:13 -05:00

78 lines
3.0 KiB
C#

using LCU.Library.Internal.DocumentIngestorModels.Enums;
using System.Collections.Generic;
namespace LCU.Library.Internal.DocumentIngestorModels.Models
{
public class ProcessResult
{
public ProcessResult()
{
Success = true;
MessageStack = new List<string>();
}
public ProcessResult(bool success, string message)
{
Success = success;
MessageStack = new List<string>() { message };
}
public bool Success { get; set; }
public bool AttemptToArchive { get; set; }
public List<string> MessageStack { get; set; }
public ProcessStatusTypes ProcessStatusType { get; set; }
public bool? EntityIsUnknown { get; set; }
public static ProcessResult ProcessCriticalFailure(ProcessResult processResult, string message)
{
return ProcessCriticalFailure(processResult, new List<string> { message });
}
public static ProcessResult ProcessCriticalFailure(ProcessResult processResult, List<string> messages)
{
processResult.ProcessStatusType = ProcessStatusTypes.CriticalFailure;
return ProcessFailure(processResult, messages, false);
}
public static ProcessResult ProcessDataMappingFailure(ProcessResult processResult, string message)
{
processResult.ProcessStatusType = ProcessStatusTypes.DataMappingFailure;
return ProcessFailure(processResult, message, null);
}
public static ProcessResult ProcessNotificationDataFailure(ProcessResult processResult, string message)
{
processResult.ProcessStatusType = ProcessStatusTypes.NotificationDataFailure;
return ProcessFailure(processResult, message, false);
}
public static ProcessResult ProcessCompleted(ProcessResult processResult, string message)
{
processResult.ProcessStatusType = ProcessStatusTypes.Completed;
return ProcessSuccess(processResult, new List<string> { message }, false);;
}
private static ProcessResult ProcessFailure(ProcessResult processResult, string message, bool? entityIsUnknown)
{
return ProcessFailure(processResult, new List<string> { message }, entityIsUnknown);
}
private static ProcessResult ProcessFailure(ProcessResult processResult, List<string> messages, bool? entityIsUnknown)
{
processResult.Success = false;
processResult.MessageStack.AddRange(messages);
processResult.EntityIsUnknown = entityIsUnknown;
return processResult;
}
private static ProcessResult ProcessSuccess(ProcessResult processResult, List<string> messages, bool? entityUnknown)
{
processResult.Success = true;
processResult.MessageStack.AddRange(messages);
processResult.EntityIsUnknown = entityUnknown;
return processResult;
}
}
}