Compare commits
7 Commits
7fea71c08d
...
10e751b9a1
| Author | SHA1 | Date | |
|---|---|---|---|
| 10e751b9a1 | |||
| 1972b8d6c9 | |||
| 821edc8718 | |||
| 71f7039376 | |||
| 7d5c00f0cb | |||
| f18840267d | |||
| 7d575398c6 |
32
src/Leanetec.EConnect.Client/Alive/GetExtensions.cs
Normal file
32
src/Leanetec.EConnect.Client/Alive/GetExtensions.cs
Normal file
@ -0,0 +1,32 @@
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Alive;
|
||||
|
||||
public static class GetExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Checks if the application is alive by sending a <see cref="GetRequest"/> via MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The MediatR instance to send the request through.</param>
|
||||
/// <param name="role">Optional role of the logged-in user.</param>
|
||||
/// <param name="apiVersion">Optional API version.</param>
|
||||
/// <returns>A <see cref="Task{Boolean}"/> representing whether the application is alive.</returns>
|
||||
public static Task<bool> IsAliveAsync(this IMediator mediator, Role? role = null, int? apiVersion = null) =>
|
||||
mediator.Send(new GetRequest(role)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// Checks if the application is alive by sending a <see cref="GetRequest"/> synchronously via MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The MediatR instance to send the request through.</param>
|
||||
/// <param name="role">Optional role of the logged-in user.</param>
|
||||
/// <param name="apiVersion">Optional API version.</param>
|
||||
/// <returns>True if the application is alive; otherwise, false.</returns>
|
||||
public static bool IsAlive(this IMediator mediator, Role? role = null, int? apiVersion = null) =>
|
||||
mediator.Send(new GetRequest(role)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
using Leanetec.EConnect.Client.Models;
|
||||
using Leanetec.EConnect.Client.Dto;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Alive;
|
||||
@ -9,7 +9,7 @@ public enum Role
|
||||
Admin
|
||||
}
|
||||
|
||||
public record GetRequest(Role? Role = null) : Request<bool>, IRequest<bool>
|
||||
public record GetRequest(Role? Role = null) : HttpRequest<bool>, IRequest<bool>
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Alive;
|
||||
|
||||
public static class MediatRExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns true if while the application is up.
|
||||
/// </summary>
|
||||
/// <param name="mediator"></param>
|
||||
/// <param name="role">Role of logged user</param>
|
||||
/// <returns></returns>
|
||||
public static Task<bool> IsAliveAsync(this IMediator mediator, Role? role = null, int? apiVersion = null) => mediator.Send(new GetRequest(role)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
}
|
||||
@ -6,9 +6,9 @@ namespace Leanetec.EConnect.Client.Articles;
|
||||
/// <summary>
|
||||
/// Extension methods for the <see cref="IMediator"/> interface to simplify working with <see cref="Article"/> entities.
|
||||
/// </summary>
|
||||
public static class MediatRExtensions
|
||||
public static class GetExtensions
|
||||
{
|
||||
#region GetRequest
|
||||
#region GetArticleById
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a single <see cref="Article"/> by its unique identifier.
|
||||
@ -25,6 +25,25 @@ public static class MediatRExtensions
|
||||
return articles.FirstOrDefault();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a single <see cref="Article"/> by its unique identifier.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="id">The unique identifier of the article to retrieve.</param>
|
||||
/// <param name="apiVersion">Optional API version to target the request.</param>
|
||||
/// <returns>
|
||||
/// The matching <see cref="Article"/>, or <c>null</c> if not found.
|
||||
/// </returns>
|
||||
public static Article? GetArticleById(this IMediator mediator, int id, int? apiVersion = null)
|
||||
{
|
||||
var articles = mediator.Send(new GetRequest(id) { ApiVersion = apiVersion }).GetAwaiter().GetResult();
|
||||
return articles.FirstOrDefault();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region GetAllArticles
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves all available <see cref="Article"/> entities.
|
||||
/// </summary>
|
||||
@ -38,23 +57,18 @@ public static class MediatRExtensions
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
#region PostRequest
|
||||
|
||||
public static Task CreateArticleAsync(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PostRequest(article)
|
||||
/// <summary>
|
||||
/// Retrieves all available <see cref="Article"/> entities.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="apiVersion">Optional API version to target the request.</param>
|
||||
/// <returns>
|
||||
/// A collection of all available <see cref="Article"/> entities.
|
||||
/// </returns>
|
||||
public static IEnumerable<Article> GetAllArticles(this IMediator mediator, int? apiVersion = null) => mediator.Send(new GetRequest()
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
#region PutRequest
|
||||
|
||||
public static Task UpdateArticleAsync(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PutRequest(article)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
}).GetAwaiter().GetResult();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
using Leanetec.EConnect.Client.Models;
|
||||
using Leanetec.EConnect.Client.Dto;
|
||||
using Leanetec.EConnect.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Articles;
|
||||
|
||||
public record GetRequest(int? ArticleId = null) : Request<IEnumerable<Article>>, IRequest<IEnumerable<Article>>
|
||||
public record GetRequest(int? ArticleId = null) : HttpRequest<IEnumerable<Article>>, IRequest<IEnumerable<Article>>
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
33
src/Leanetec.EConnect.Client/Articles/PostExtensions.cs
Normal file
33
src/Leanetec.EConnect.Client/Articles/PostExtensions.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using Leanetec.EConnect.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Articles;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for the <see cref="IMediator"/> interface to simplify working with <see cref="Article"/> entities.
|
||||
/// </summary>
|
||||
public static class PostExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Sends a request to create a new <see cref="Article"/> using MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="article">The <see cref="Article"/> entity to be created.</param>
|
||||
/// <param name="apiVersion">Optional API version to include in the request.</param>
|
||||
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
|
||||
public static Task CreateArticleAsync(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PostRequest(article)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// Sends a request to create a new <see cref="Article"/> using MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="article">The <see cref="Article"/> entity to be created.</param>
|
||||
/// <param name="apiVersion">Optional API version to include in the request.</param>
|
||||
public static void CreateArticle(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PostRequest(article)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
using Leanetec.EConnect.Client.Models;
|
||||
using Leanetec.EConnect.Client.Dto;
|
||||
using Leanetec.EConnect.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Articles;
|
||||
|
||||
public record PostRequest(Article Article) : Request, IRequest
|
||||
public record PostRequest(Article Article) : HttpRequest, IRequest
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
33
src/Leanetec.EConnect.Client/Articles/PutExtensions.cs
Normal file
33
src/Leanetec.EConnect.Client/Articles/PutExtensions.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using Leanetec.EConnect.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Articles;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for the <see cref="IMediator"/> interface to simplify working with <see cref="Article"/> entities.
|
||||
/// </summary>
|
||||
public static class PutExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Sends a request to update an existing <see cref="Article"/> using MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="article">The <see cref="Article"/> entity to be updated.</param>
|
||||
/// <param name="apiVersion">Optional API version to include in the request.</param>
|
||||
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
|
||||
public static Task UpdateArticleAsync(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PutRequest(article)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// Sends a request to update an existing <see cref="Article"/> using MediatR.
|
||||
/// </summary>
|
||||
/// <param name="mediator">The <see cref="IMediator"/> instance used to send the request.</param>
|
||||
/// <param name="article">The <see cref="Article"/> entity to be updated.</param>
|
||||
/// <param name="apiVersion">Optional API version to include in the request.</param>
|
||||
public static void UpdateArticle(this IMediator mediator, Article article, int? apiVersion = null) => mediator.Send(new PutRequest(article)
|
||||
{
|
||||
ApiVersion = apiVersion
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
using Leanetec.EConnect.Client.Models;
|
||||
using Leanetec.EConnect.Client.Dto;
|
||||
using Leanetec.EConnect.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Articles;
|
||||
|
||||
public record PutRequest(Article Article) : Request, IRequest
|
||||
public record PutRequest(Article Article) : HttpRequest, IRequest
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
16
src/Leanetec.EConnect.Client/Dto/HttpRequest.cs
Normal file
16
src/Leanetec.EConnect.Client/Dto/HttpRequest.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Dto;
|
||||
|
||||
public record HttpRequestBase
|
||||
{
|
||||
public int? ApiVersion { get; set; }
|
||||
}
|
||||
|
||||
public record HttpRequest : HttpRequestBase, IRequest
|
||||
{
|
||||
}
|
||||
|
||||
public record HttpRequest<TResponse> : HttpRequestBase, IRequest<TResponse>
|
||||
{
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
using MediatR;
|
||||
|
||||
namespace Leanetec.EConnect.Client.Models;
|
||||
|
||||
public record CommonRequest
|
||||
{
|
||||
public int? ApiVersion { get; set; }
|
||||
}
|
||||
|
||||
public record Request : CommonRequest, IRequest
|
||||
{
|
||||
}
|
||||
|
||||
public record Request<TResponse> : CommonRequest, IRequest<TResponse>
|
||||
{
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user