From 04d206a75a54877fbb165a977c81d8ded3991ffc Mon Sep 17 00:00:00 2001 From: Young Date: Sun, 29 Sep 2024 15:28:38 +0800 Subject: [PATCH] update models --- src/Infrastructure/DefaultControllerBase.cs | 62 +++++++++++++++++++++ src/Infrastructure/MessageData.cs | 16 ++++++ src/Infrastructure/PageData.cs | 27 +++++++++ 3 files changed, 105 insertions(+) create mode 100644 src/Infrastructure/DefaultControllerBase.cs create mode 100644 src/Infrastructure/MessageData.cs create mode 100644 src/Infrastructure/PageData.cs diff --git a/src/Infrastructure/DefaultControllerBase.cs b/src/Infrastructure/DefaultControllerBase.cs new file mode 100644 index 0000000..09c5f9d --- /dev/null +++ b/src/Infrastructure/DefaultControllerBase.cs @@ -0,0 +1,62 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace Infrastructure; + +[ApiController] +[Produces("application/json")] +[ProducesResponseType(StatusCodes.Status200OK)] +public class DefaultControllerBase : ControllerBase +{ + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData Succeed(T data, string message = "successful") + { + return new MessageData(data, true, message); + } + + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData Succeed(string message = "successful", int code = 200) + { + return new MessageData(true, message, code); + } + + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData Fail(string message = "failed", int code = 500) + { + return new MessageData(false, message, code); + } + + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData Fail(string message = "failed", int code = 500) + { + return new MessageData(default, false, message, code); + } + + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData> SucceedPage(int page, int dataCount, int pageSize, List data, + int pageCount, + string message = "successful") + { + var pageData = new PageData() + { + Data = data, + TotalPages = pageCount, + PageSize = pageSize, + Page = page, + TotalItems = dataCount, + }; + return new MessageData>(pageData, true, message); + } + + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + public static MessageData> SucceedPage(PageData page, string message = "successful") + { + return new MessageData>(page, true, message); + } +} \ No newline at end of file diff --git a/src/Infrastructure/MessageData.cs b/src/Infrastructure/MessageData.cs new file mode 100644 index 0000000..4140bb3 --- /dev/null +++ b/src/Infrastructure/MessageData.cs @@ -0,0 +1,16 @@ +namespace Infrastructure; + +public class MessageData(bool successful, string message, int code = 500) +{ + public bool Successful { get; set; } = successful; + + public int Code { get; set; } = code; + + public string Message { get; set; } = message; +} + +public class MessageData(T data, bool successful, string message, int code = 500) + : MessageData(successful, message, code) +{ + public T Data { get; set; } = data; +} \ No newline at end of file diff --git a/src/Infrastructure/PageData.cs b/src/Infrastructure/PageData.cs new file mode 100644 index 0000000..ffaf742 --- /dev/null +++ b/src/Infrastructure/PageData.cs @@ -0,0 +1,27 @@ +namespace Infrastructure; + +public class PageData +{ + public PageData() + { + } + + public PageData(int page, int pageSize, int totalPages, int totalItems, List data) + { + Page = page; + PageSize = pageSize; + TotalItems = totalItems; + TotalPages = totalPages; + Data = data; + } + + public int Page { get; set; } + + public int PageSize { get; set; } + + public int TotalPages { get; set; } + + public int TotalItems { get; set; } + + public List Data { get; set; } +} \ No newline at end of file