Skip to content

Instantly share code, notes, and snippets.

@DavidRogersDev
DavidRogersDev / BusinessValidationPipeline.cs
Last active June 27, 2022 22:28
Gists for Medium Article - BusinessValidationPipeline
public class BusinessValidationPipeline<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
where TResponse : class
where TRequest : IValidateable
{
private readonly IValidator<TRequest> _compositeValidator;
private readonly ILogger<TRequest> _logger;
private readonly ICurrentUser _currentUser;
private readonly IActionContextAccessor _actionContextAccessor;
public BusinessValidationPipeline(
@DavidRogersDev
DavidRogersDev / CreateUser.cs
Last active April 4, 2020 10:21
Gist for Medium Article - CreateUser
[HttpPost]
[Route("[action]")]
public async Task<IActionResult> CreateUser([FromBody]CreateUserDto userDto)
{
var result = await _mediator.Send(new CreateNewUserCommand {CreateUserDto = userDto});
return result.IsValidResponse
? CreatedAtRoute(routeValues: new
{
controller = "User",
@DavidRogersDev
DavidRogersDev / CreateNewUserCommand.cs
Created April 4, 2020 10:17
Gist for Medium Article - CreateNewUserCommand
public class CreateNewUserCommand : IRequest<ValidateableResponse<ApiResponse<int>>>, IValidateable
{
public CreateUserDto CreateUserDto { get; set; }
}
@DavidRogersDev
DavidRogersDev / CreateNewUserCommandHandler.cs
Last active June 27, 2022 22:23
Gist for Medium Article - CreateNewUserCommandHandler
public class CreateNewUserCommandHandler : IRequestHandler<CreateNewUserCommand, ValidateableResponse<ApiResponse<int>>>
{
private readonly ILogger _logger;
public CreateNewUserCommandHandler(ILogger logger)
{
_logger = logger;
}
public async Task<ValidateableResponse<ApiResponse<int>>> Handle(CreateNewUserCommand request,
@DavidRogersDev
DavidRogersDev / CreateUserValidator.cs
Created April 4, 2020 10:13
Gist for Medium Article - CreateUserValidator
public class CreateUserValidator: AbstractValidator<CreateUserDto>
{
public CreateUserValidator()
{
RuleFor(m => m.Password).NotEmpty();
RuleFor(m => m.UserName).NotEmpty();
}
}
@DavidRogersDev
DavidRogersDev / ValidateableResponse.cs
Last active April 4, 2020 10:13
Gist for Medium Article - ValidateableResponse
public class ValidateableResponse
{
private readonly IList<string> _errorMessages;
public ValidateableResponse(IList<string> errors = null)
{
_errorMessages = errors ?? new List<string>();
}
public bool IsValidResponse => !_errorMessages.Any();
@DavidRogersDev
DavidRogersDev / clean.bat
Created September 13, 2018 03:25
Bat file to clean out a Visual Studio Project on the File System
del /s /ah /f *.suo
del /s /f *.user
del /s /f *.cache
del /s /f *.keep
del /s /ah StyleCop.Cache
rd /s /q bin obj .vs ClientBin _Resharper.* _Upgrade* TestResults
del dirs.txt
dir /s /b /ad bin > dirs.txt
@DavidRogersDev
DavidRogersDev / ConcatenateSqlScripts.ps1
Created June 27, 2018 01:26
Concatenate all sql scripts in a directory into 1 script. I end every script file with a GO statement, which separates them in the consolidated script file.
$file = "consolidated-script.txt"
$filenew = "consolidated-script.sql"
cat *.sql | sc consolidated-script.txt
Rename-Item $file $filenew
@DavidRogersDev
DavidRogersDev / uninstallAll.ps1
Last active June 17, 2020 06:56
Uninstall all Nuget packages from a Project in a solution
Get-Package -ProjectName "YourProjectName" | Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies
## Add -Force flag on the end to overcome dependancy issues.
@DavidRogersDev
DavidRogersDev / ContextExtensions.cs
Created October 7, 2017 03:46
Extension method CreateViewDataDictionary to create a new ViewDataDictionary in ASP.NET Core
public static ViewDataDictionary<T> CreateViewDataDictionary<T>(this HttpContext httpContext, T model)
{
var modelMetadataProvider = httpContext.ApplicationServices.GetRequiredService<IModelMetadataProvider>();
return new ViewDataDictionary<T>(modelMetadataProvider, new ModelStateDictionary())
{
Model = model
};
}