mirror of https://github.com/Squidex/squidex.git
24 changed files with 249 additions and 134 deletions
@ -0,0 +1,96 @@ |
|||
// ==========================================================================
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|||
// All rights reserved. Licensed under the MIT license.
|
|||
// ==========================================================================
|
|||
|
|||
using System; |
|||
using System.Text; |
|||
|
|||
namespace Squidex.Domain.Apps.Core.HandleRules |
|||
{ |
|||
public sealed class Result |
|||
{ |
|||
public Exception Exception { get; private set; } |
|||
|
|||
public string Dump { get; private set; } |
|||
|
|||
public RuleResult Status { get; private set; } |
|||
|
|||
public void Enrich(TimeSpan elapsed) |
|||
{ |
|||
var dumpBuilder = new StringBuilder(); |
|||
|
|||
if (!string.IsNullOrWhiteSpace(Dump)) |
|||
{ |
|||
dumpBuilder.AppendLine(Dump); |
|||
} |
|||
|
|||
if (Status == RuleResult.Timeout) |
|||
{ |
|||
dumpBuilder.AppendLine(); |
|||
dumpBuilder.AppendLine("Action timed out."); |
|||
} |
|||
|
|||
dumpBuilder.AppendLine(); |
|||
dumpBuilder.AppendFormat("Elapsed {0}.", elapsed); |
|||
dumpBuilder.AppendLine(); |
|||
|
|||
Dump = dumpBuilder.ToString(); |
|||
} |
|||
|
|||
public static Result Ignored() |
|||
{ |
|||
return Success("Ignored"); |
|||
} |
|||
|
|||
public static Result Complete() |
|||
{ |
|||
return Success("Completed"); |
|||
} |
|||
|
|||
public static Result Create(string dump, RuleResult result) |
|||
{ |
|||
return new Result { Dump = dump, Status = result }; |
|||
} |
|||
|
|||
public static Result Success(string dump) |
|||
{ |
|||
return new Result { Dump = dump, Status = RuleResult.Success }; |
|||
} |
|||
|
|||
public static Result Failed(Exception ex) |
|||
{ |
|||
return Failed(ex, ex?.Message); |
|||
} |
|||
|
|||
public static Result SuccessOrFailed(Exception ex, string dump) |
|||
{ |
|||
if (ex != null) |
|||
{ |
|||
return Failed(ex, dump); |
|||
} |
|||
else |
|||
{ |
|||
return Success(dump); |
|||
} |
|||
} |
|||
|
|||
public static Result Failed(Exception ex, string dump) |
|||
{ |
|||
var result = new Result { Exception = ex, Dump = dump ?? ex.Message }; |
|||
|
|||
if (ex is OperationCanceledException || ex is TimeoutException) |
|||
{ |
|||
result.Status = RuleResult.Timeout; |
|||
} |
|||
else |
|||
{ |
|||
result.Status = RuleResult.Failed; |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue