public async Task <Unit> Handle(RemoveVaultCommand request, CancellationToken cancellationToken) { if (!VaultService.ValidateVaultPassword(request.VaultId, request.MasterPassword)) { throw new Exception("Podano nie poprawne hasło"); } var vault = await(from v in PmContext.Vaults where v.Username == UserResolverService.GetUsername() && v.Id == request.VaultId select v).FirstOrDefaultAsync(); if (vault == null) { throw new Exception(); } var entries = await(from en in PmContext.Entries where en.VaultId == vault.Id select en ).ToListAsync(); using var trans = PmContext.Database.BeginTransaction(); PmContext.Entries.RemoveRange(entries); PmContext.Vaults.Remove(vault); PmContext.SaveChanges(); await trans.CommitAsync(); return(Unit.Value); }
public async Task <Unit> Handle(CreateVaultCommand request, CancellationToken cancellationToken) { var vault = new Vault() { MasterSalt = Encryptor.GenerateSalt(), MasterPassword = "", Name = request.Name, Username = UserResolverService.GetUsername() }; vault.MasterPassword = CryptoService.HashString(request.MasterPassword, vault.MasterSalt); PmContext.Add(vault); await PmContext.SaveChangesAsync(); return(Unit.Value); }