Skip to content

Commit

Permalink
Merge pull request #60 from neozhu/improvetemplate
Browse files Browse the repository at this point in the history
✨ improve code template
  • Loading branch information
neozhu authored Sep 22, 2023
2 parents 364b963 + 15d8428 commit 4755f43
Show file tree
Hide file tree
Showing 15 changed files with 36 additions and 40 deletions.
7 changes: 5 additions & 2 deletions src/Templates/Commands/AddEdit/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ namespace {namespace};

public class AddEdit{itemname}Command: ICacheInvalidatorRequest<Result<int>>
{
[Description("Id")]
public int Id { get; set; }
{dtoFieldDefinition}

public string CacheKey => {itemname}CacheKey.GetAllCacheKey;
Expand All @@ -16,7 +18,9 @@ public class AddEdit{itemname}Command: ICacheInvalidatorRequest<Result<int>>
{
public Mapping()
{
CreateMap<{itemname}Dto, AddEdit{itemname}Command>().ReverseMap();
CreateMap<{itemname}Dto,AddEdit{itemname}Command>(MemberList.None);
CreateMap<AddEdit{itemname}Command,{itemname}>(MemberList.None);

}
}
}
Expand All @@ -38,7 +42,6 @@ public class AddEdit{itemname}Command: ICacheInvalidatorRequest<Result<int>>
}
public async Task<Result<int>> Handle(AddEdit{itemname}Command request, CancellationToken cancellationToken)
{
// TODO: Implement AddEdit{itemname}CommandHandler method
var dto = _mapper.Map<{itemname}Dto>(request);
if (request.Id > 0)
{
Expand Down
9 changes: 4 additions & 5 deletions src/Templates/Commands/AddEdit/.validator.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ public class AddEdit{itemname}CommandValidator : AbstractValidator<AddEdit{itemn
{
public AddEdit{itemname}CommandValidator()
{
// TODO: Implement AddEdit{itemname}CommandValidator method, for example:
// RuleFor(v => v.Name)
// .MaximumLength(256)
// .NotEmpty();
throw new System.NotImplementedException();
RuleFor(v => v.Name)
.MaximumLength(256)
.NotEmpty();

}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
Expand Down
6 changes: 4 additions & 2 deletions src/Templates/Commands/Create/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ namespace {namespace};

public class Create{itemname}Command: ICacheInvalidatorRequest<Result<int>>
{
[Description("Id")]
public int Id { get; set; }
{dtoFieldDefinition}
public string CacheKey => {itemname}CacheKey.GetAllCacheKey;
public CancellationTokenSource? SharedExpiryTokenSource => {itemname}CacheKey.SharedExpiryTokenSource();
private class Mapping : Profile
{
public Mapping()
{
CreateMap<{itemname}Dto, Create{itemname}Command>().ReverseMap();
CreateMap<{itemname}Dto,Create{itemname}Command>(MemberList.None);
CreateMap<Create{itemname}Command,{itemname}>(MemberList.None);
}
}
}
Expand All @@ -37,7 +40,6 @@ public class Create{itemname}Command: ICacheInvalidatorRequest<Result<int>>
}
public async Task<Result<int>> Handle(Create{itemname}Command request, CancellationToken cancellationToken)
{
// TODO: Implement Create{itemname}CommandHandler method
var dto = _mapper.Map<{itemname}Dto>(request);
var item = _mapper.Map<{itemname}>(dto);
// raise a create domain event
Expand Down
10 changes: 5 additions & 5 deletions src/Templates/Commands/Create/.validator.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ namespace {namespace};
{
public Create{itemname}CommandValidator()
{
// TODO: Implement Create{itemname}CommandValidator method, for example:
// RuleFor(v => v.Name)
// .MaximumLength(256)
// .NotEmpty();
throw new System.NotImplementedException();

RuleFor(v => v.Name)
.MaximumLength(256)
.NotEmpty();

}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
Expand Down
1 change: 0 additions & 1 deletion src/Templates/Commands/Delete/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ namespace {namespace};
}
public async Task<Result<int>> Handle(Delete{itemname}Command request, CancellationToken cancellationToken)
{
// TODO: Implement DeleteChecked{nameofPlural}CommandHandler method
var items = await _context.{nameofPlural}.Where(x=>request.Id.Contains(x.Id)).ToListAsync(cancellationToken);
foreach (var item in items)
{
Expand Down
6 changes: 3 additions & 3 deletions src/Templates/Commands/Delete/.validator.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ public class Delete{itemname}CommandValidator : AbstractValidator<Delete{itemnam
{
public Delete{itemname}CommandValidator()
{
// TODO: Implement Delete{itemname}CommandValidator method, for example:
// RuleFor(v => v.Id).NotNull().ForEach(v=>v.GreaterThan(0));
throw new System.NotImplementedException();

RuleFor(v => v.Id).NotNull().ForEach(v=>v.GreaterThan(0));

}
}

Expand Down
3 changes: 1 addition & 2 deletions src/Templates/Commands/Import/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ namespace {namespace};
#nullable disable warnings
public async Task<Result<int>> Handle(Import{nameofPlural}Command request, CancellationToken cancellationToken)
{
// TODO: Implement Import{nameofPlural}CommandHandler method

var result = await _excelService.ImportAsync(request.Data, mappers: new Dictionary<string, Func<DataRow, {itemname}Dto, object?>>
{
// TODO: Define the fields that should be read from Excel, for example:
{importFuncExpression}
}, _localizer[_dto.GetClassDescription()]);
if (result.Succeeded && result.Data is not null)
Expand Down
10 changes: 5 additions & 5 deletions src/Templates/Commands/Import/.validator.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ namespace {namespace};
{
public Import{nameofPlural}CommandValidator()
{
// TODO: Implement Import{itemname}CommandValidator method, for example:
// RuleFor(v => v.Data)
// .NotNull()
// .NotEmpty();
throw new System.NotImplementedException();

RuleFor(v => v.Data)
.NotNull()
.NotEmpty();

}
}

5 changes: 4 additions & 1 deletion src/Templates/Commands/Update/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ namespace {namespace};

public class Update{itemname}Command: ICacheInvalidatorRequest<Result<int>>
{
[Description("Id")]
public int Id { get; set; }
{dtoFieldDefinition}
public string CacheKey => {itemname}CacheKey.GetAllCacheKey;
public CancellationTokenSource? SharedExpiryTokenSource => {itemname}CacheKey.SharedExpiryTokenSource();
private class Mapping : Profile
{
public Mapping()
{
CreateMap<{itemname}Dto, Update{itemname}Command>().ReverseMap();
CreateMap<{itemname}Dto,Update{itemname}Command>(MemberList.None);
CreateMap<Update{itemname}Command,{itemname}>(MemberList.None);
}
}
}
Expand Down
8 changes: 3 additions & 5 deletions src/Templates/Commands/Update/.validator.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@ public class Update{itemname}CommandValidator : AbstractValidator<Update{itemnam
{
public Update{itemname}CommandValidator()
{
// TODO: Implement Update{itemname}CommandValidator method, for example:
// RuleFor(v => v.Name)
// .MaximumLength(256)
// .NotEmpty();
throw new System.NotImplementedException();
RuleFor(v => v.Id).NotNull();
RuleFor(v => v.Name).MaximumLength(256).NotEmpty();

}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
Expand Down
3 changes: 2 additions & 1 deletion src/Templates/DTOs/.dto.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ namespace {namespace};
[Description("{nameofPlural}")]
public class {itemname}Dto
{
// TODO: define data transfer object (DTO) fields, for example:
[Description("Id")]
public int Id { get; set; }
{dtoFieldDefinition}

private class Mapping : Profile
Expand Down
5 changes: 0 additions & 5 deletions src/Templates/Queries/Export/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ namespace {namespace};

public class Export{nameofPlural}Query : {itemname}AdvancedFilter, IRequest<Result<byte[]>>
{
public string OrderBy { get; set; } = "Id";
public string SortDirection { get; set; } = "Descending";
public {itemname}ListView ListView { get; set; } = {itemname}ListView.All;
public UserProfile? CurrentUser { get; set; }
public {itemname}AdvancedSpecification Specification => new {itemname}AdvancedSpecification(this);
}

Expand All @@ -39,7 +35,6 @@ public class Export{nameofPlural}QueryHandler :
#nullable disable warnings
public async Task<Result<byte[]>> Handle(Export{nameofPlural}Query request, CancellationToken cancellationToken)
{
// TODO: Implement Export{nameofPlural}QueryHandler method
var data = await _context.{nameofPlural}.ApplySpecification(request.Specification)
.OrderBy($"{request.OrderBy} {request.SortDirection}")
.ProjectTo<{itemname}Dto>(_mapper.ConfigurationProvider)
Expand Down
1 change: 0 additions & 1 deletion src/Templates/Queries/GetAll/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public class GetAll{nameofPlural}QueryHandler :

public async Task<IEnumerable<{itemname}Dto>> Handle(GetAll{nameofPlural}Query request, CancellationToken cancellationToken)
{
// TODO: Implement GetAll{nameofPlural}QueryHandler method
var data = await _context.{nameofPlural}
.ProjectTo<{itemname}Dto>(_mapper.ConfigurationProvider)
.AsNoTracking()
Expand Down
1 change: 0 additions & 1 deletion src/Templates/Queries/GetById/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ public class Get{itemname}ByIdQueryHandler :

public async Task<{itemname}Dto> Handle(Get{itemname}ByIdQuery request, CancellationToken cancellationToken)
{
// TODO: Implement Get{itemname}ByIdQueryHandler method
var data = await _context.{nameofPlural}.ApplySpecification(new {itemname}ByIdSpecification(request.Id))
.ProjectTo<{itemname}Dto>(_mapper.ConfigurationProvider)
.FirstAsync(cancellationToken) ?? throw new NotFoundException($"{itemname} with id: [{request.Id}] not found.");;
Expand Down
1 change: 0 additions & 1 deletion src/Templates/Queries/Pagination/.cs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public class {nameofPlural}WithPaginationQueryHandler :

public async Task<PaginatedData<{itemname}Dto>> Handle({nameofPlural}WithPaginationQuery request, CancellationToken cancellationToken)
{
// TODO: Implement {nameofPlural}WithPaginationQueryHandler method
var data = await _context.{nameofPlural}.OrderBy($"{request.OrderBy} {request.SortDirection}")
.ProjectToPaginatedDataAsync<{itemname}, {itemname}Dto>(request.Specification, request.PageNumber, request.PageSize, _mapper.ConfigurationProvider, cancellationToken);
return data;
Expand Down

0 comments on commit 4755f43

Please sign in to comment.