2020-03-26 19:04:51 +01:00
|
|
|
|
using MediatR;
|
|
|
|
|
using ModernKeePass.Application.Common.Interfaces;
|
|
|
|
|
using ModernKeePass.Domain.Dtos;
|
|
|
|
|
|
|
|
|
|
namespace ModernKeePass.Application.Security.Commands.GeneratePassword
|
|
|
|
|
{
|
|
|
|
|
public class GeneratePasswordCommand: IRequest<string>
|
|
|
|
|
{
|
|
|
|
|
public int PasswordLength { get; set; }
|
|
|
|
|
public bool UpperCasePatternSelected { get; set; }
|
|
|
|
|
public bool LowerCasePatternSelected { get; set; }
|
|
|
|
|
public bool DigitsPatternSelected { get; set; }
|
|
|
|
|
public bool SpecialPatternSelected { get; set; }
|
|
|
|
|
public bool MinusPatternSelected { get; set; }
|
|
|
|
|
public bool UnderscorePatternSelected { get; set; }
|
|
|
|
|
public bool SpacePatternSelected { get; set; }
|
|
|
|
|
public bool BracketsPatternSelected { get; set; }
|
|
|
|
|
public string CustomChars { get; set; }
|
|
|
|
|
|
|
|
|
|
public class GeneratePasswordCommandHandler: IRequestHandler<GeneratePasswordCommand, string>
|
|
|
|
|
{
|
2020-04-20 20:02:43 +02:00
|
|
|
|
private readonly ICredentialsProxy _security;
|
2020-03-26 19:04:51 +01:00
|
|
|
|
|
2020-04-20 20:02:43 +02:00
|
|
|
|
public GeneratePasswordCommandHandler(ICredentialsProxy security)
|
2020-03-26 19:04:51 +01:00
|
|
|
|
{
|
|
|
|
|
_security = security;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Handle(GeneratePasswordCommand message)
|
|
|
|
|
{
|
|
|
|
|
var options = new PasswordGenerationOptions
|
|
|
|
|
{
|
|
|
|
|
PasswordLength = message.PasswordLength,
|
|
|
|
|
BracketsPatternSelected = message.BracketsPatternSelected,
|
|
|
|
|
CustomChars = message.CustomChars,
|
|
|
|
|
DigitsPatternSelected = message.DigitsPatternSelected,
|
|
|
|
|
LowerCasePatternSelected = message.LowerCasePatternSelected,
|
|
|
|
|
MinusPatternSelected = message.MinusPatternSelected,
|
|
|
|
|
SpacePatternSelected = message.SpacePatternSelected,
|
|
|
|
|
SpecialPatternSelected = message.SpecialPatternSelected,
|
|
|
|
|
UnderscorePatternSelected = message.UnderscorePatternSelected,
|
|
|
|
|
UpperCasePatternSelected = message.UpperCasePatternSelected
|
|
|
|
|
};
|
|
|
|
|
return _security.GeneratePassword(options);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|