Refactoring, database structure changed
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using WatchIt.DTO.Query;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender.Filters;
|
||||
|
||||
public record GenderNameFilter : Filter<Database.Model.Genders.Gender>
|
||||
{
|
||||
public GenderNameFilter(string? nameRegex) : base(x =>
|
||||
(
|
||||
string.IsNullOrWhiteSpace(nameRegex)
|
||||
||
|
||||
(
|
||||
!string.IsNullOrWhiteSpace(x.Name)
|
||||
&&
|
||||
Regex.IsMatch(x.Name, nameRegex, RegexOptions.IgnoreCase)
|
||||
)
|
||||
)) { }
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using WatchIt.DTO.Models.Controllers.Genders.Gender.Filters;
|
||||
using WatchIt.DTO.Query;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
public class GenderFilterQuery : IFilterQuery<Database.Model.Genders.Gender>
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
[FromQuery(Name = "name")]
|
||||
public string? Name { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PUBLIC METHODS
|
||||
|
||||
public IEnumerable<Filter<Database.Model.Genders.Gender>> GetFilters() =>
|
||||
[
|
||||
new GenderNameFilter(Name),
|
||||
];
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
public static class GenderOrderKeys
|
||||
{
|
||||
public static readonly Dictionary<string, Expression<Func<Database.Model.Genders.Gender, object?>>> Base = new Dictionary<string, Expression<Func<Database.Model.Genders.Gender, object?>>>
|
||||
{
|
||||
{ "id", x => x.Id },
|
||||
{ "name", x => x.Name },
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
public class GenderRequest
|
||||
{
|
||||
public string Name { get; set; } = null!;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using FluentValidation;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
public class GenderRequestValidator : AbstractValidator<GenderRequest>
|
||||
{
|
||||
#region CONSTRUCTORS
|
||||
|
||||
public GenderRequestValidator()
|
||||
{
|
||||
RuleFor(x => x.Name).MaximumLength(100);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
public class GenderResponse
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
17
WatchIt.DTO/Models/Controllers/Genders/GendersMappers.cs
Normal file
17
WatchIt.DTO/Models/Controllers/Genders/GendersMappers.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using WatchIt.DTO.Models.Controllers.Genders.Gender;
|
||||
|
||||
namespace WatchIt.DTO.Models.Controllers.Genders;
|
||||
|
||||
public static class GendersMappers
|
||||
{
|
||||
public static GenderResponse ToResponse(this Database.Model.Genders.Gender entity) => new GenderResponse
|
||||
{
|
||||
Id = entity.Id,
|
||||
Name = entity.Name,
|
||||
};
|
||||
|
||||
public static Database.Model.Genders.Gender ToEntity(this GenderRequest request) => new Database.Model.Genders.Gender
|
||||
{
|
||||
Name = request.Name,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user