This commit is contained in:
Mikhail Kuznetsov
2023-06-16 15:00:11 +10:00
parent 73a824057b
commit 57fe9eff09
37 changed files with 1151 additions and 504 deletions

View File

@@ -0,0 +1,29 @@
namespace PARR.API.Contracts.V1.Responses.Base
{
public class BaseResponse
{
public BaseResponse() { }
public BaseResponse(bool isSuccess)
{
IsSuccess = isSuccess;
}
public BaseResponse(bool isSuccess, List<ErrorModel> errors)
{
IsSuccess = isSuccess;
Errors = errors;
}
public BaseResponse(bool isSuccess, List<ErrorModel> errors, string message)
{
IsSuccess = isSuccess;
Errors = errors;
Message = message;
}
public List<ErrorModel> Errors { get; set; } = new List<ErrorModel>();
public bool IsSuccess { get; private set; }
public string? Message { get; private set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace PARR.API.Contracts.V1.Responses.Base
{
public class ErrorModel
{
public string? FieldName { get; set; }
public string? Message { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
namespace PARR.API.Contracts.V1.Responses.Base
{
public class PagedResponse<T> : BaseResponse
{
public PagedResponse(bool isSuccess) : base(isSuccess) { }
public PagedResponse(bool isSuccess, List<ErrorModel> errors) : base(isSuccess, errors) { }
public PagedResponse(bool isSuccess, List<ErrorModel> errors, string message) : base(isSuccess, errors, message) { }
public PagedResponse(IEnumerable<T> data, bool isSuccess) : base(isSuccess) { Data = data; }
public PagedResponse(IEnumerable<T> data, bool isSuccess, List<ErrorModel> errors) : base(isSuccess, errors) { Data = data; }
public PagedResponse(IEnumerable<T> data, bool isSuccess, List<ErrorModel> errors, string message) : base(isSuccess, errors, message) { Data = data; }
public IEnumerable<T>? Data { get; set; }
public int? PageNumber { get; set; }
public int? PageSize { get; set; }
public int? TotalPage { get; set; }
public int? TotalItems { get; set; }
}
}

View File

@@ -0,0 +1,57 @@
using FluentValidation.Results;
namespace PARR.API.Contracts.V1.Responses.Base
{
public class Response<T> : BaseResponse
{
public Response(T response, bool isSuccess) : base(isSuccess)
{
Data = response;
}
public Response(T response, bool isSuccess, List<ErrorModel> errors) : base(isSuccess, errors)
{
Data = response;
}
public Response(T response, bool isSuccess, List<ErrorModel> errors, string message) : base(isSuccess, errors, message)
{
Data = response;
}
public T? Data { get; private set; }
}
public class Response : Response<object?>
{
/// <summary>
/// Респонс для валидации от FluentValidator
/// </summary>
/// <param name="validationErrors">ResultValidate.Errors</param>
public Response(List<ValidationFailure> validationErrors) : base(null, false)
{
var errors = new List<ErrorModel>();
foreach (var error in validationErrors)
{
errors.Add(new ErrorModel
{
FieldName = error.PropertyName,
Message = error.ErrorMessage
});
}
Errors = errors;
}
/// <summary>
/// Респонс когда не нужно передавать объект
/// </summary>
/// <param name="isSuccess"></param>
/// <param name="errors"></param>
public Response(bool isSuccess, List<ErrorModel> errors) : base(null, isSuccess, errors)
{
}
}
}