4 Commits

4 changed files with 13 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
using DigitalData.Core.Contracts.Application;
using DigitalData.Core.Contracts.Infrastructure;
using DigitalData.Core.DTO;
using Microsoft.AspNetCore.Mvc;
namespace DigitalData.Core.API
@@ -57,6 +58,7 @@ namespace DigitalData.Core.API
var routeValues = new { id = createdResource.Id };
return CreatedAtAction(actionName, routeValues, createdResource);
}
return BadRequest(result);
}

View File

@@ -17,7 +17,7 @@ namespace DigitalData.Core.API
/// <param name="services">The IServiceCollection to add services to.</param>
/// <param name="resourcesPath">The path to the resource files used for localization.</param>
/// <returns>The IServiceCollection for chaining.</returns>
public static IServiceCollection AddCookieBasedLocalizer(this IServiceCollection services, string resourcesPath)
public static IServiceCollection AddCookieBasedLocalizer(this IServiceCollection services, string resourcesPath = "")
{
// Adds localization services with the specified resources path.
services.AddLocalization(options => options.ResourcesPath = resourcesPath)

View File

@@ -72,19 +72,19 @@ namespace DigitalData.Core.DTO
return result.IsSuccess ? Try(result.Data) : Catch(result.Messages, result.Notices);
}
public static async Task<I> Then<I>(this Task<Result> tResult, Func<I> Try, Func<List<string>, List<Notice>, I> Catch)
public static async Task<I> ThenAsync<I>(this Task<Result> tResult, Func<I> Try, Func<List<string>, List<Notice>, I> Catch)
{
Result result = await tResult;
return result.IsSuccess ? Try() : Catch(result.Messages, result.Notices);
}
public static async Task<I> Then<T, I>(this Task<DataResult<T>> tResult, Func<T, I> Try, Func<List<string>, List<Notice>, I> Catch)
public static async Task<I> ThenAsync<T, I>(this Task<DataResult<T>> tResult, Func<T, I> Try, Func<List<string>, List<Notice>, I> Catch)
{
DataResult<T> result = await tResult;
return result.IsSuccess ? Try(result.Data) : Catch(result.Messages, result.Notices);
}
public static void LogNotice<T>(this ILogger<T> logger, IEnumerable<Notice> notices, string start = ": ", string seperator = ". ", string end = ".\n")
public static void LogNotice(this ILogger logger, IEnumerable<Notice> notices, string start = ": ", string seperator = ". ", string end = ".\n")
{
foreach(LogLevel level in Enum.GetValues(typeof(LogLevel)))
{
@@ -106,5 +106,8 @@ namespace DigitalData.Core.DTO
logger.Log(level, sb.ToString());
}
}
public static void LogNotice(this ILogger logger, Result result, string start = ": ", string seperator = ". ", string end = ".\n")
=> logger.LogNotice(notices: result.Notices, start: start, seperator: seperator, end: end);
}
}

View File

@@ -19,6 +19,10 @@ namespace DigitalData.Core.DTO
Data = data
};
public bool HasFlag(Enum flag) => Notices.Any(n => n.Flag?.ToString() == flag.ToString());
public bool HasAnyFlag(params Enum[] flags) => flags.Any(f => HasFlag(f));
public static Result Success() => new() { IsSuccess = true };
public static Result Fail() => new() { IsSuccess = false };