public async Task<PackageOwnerRequest> CreatePackageOwnerRequestAsync(PackageRegistration package, User currentOwner, User newOwner) { var existingRequest = FindExistingPackageOwnerRequest(package, newOwner); if (existingRequest != null) { return existingRequest; } var newRequest = new PackageOwnerRequest { PackageRegistrationKey = package.Key, RequestingOwnerKey = currentOwner.Key, NewOwnerKey = newOwner.Key, ConfirmationCode = CryptographyService.GenerateToken(), RequestDate = DateTime.UtcNow }; _packageOwnerRequestRepository.InsertOnCommit(newRequest); await _packageOwnerRequestRepository.CommitChangesAsync(); return newRequest; }
public async Task <PackageOwnerRequest> AddPackageOwnershipRequest(PackageRegistration package, User requestingOwner, User newOwner) { if (package == null) { throw new ArgumentNullException(nameof(package)); } if (requestingOwner == null) { throw new ArgumentNullException(nameof(requestingOwner)); } if (newOwner == null) { throw new ArgumentNullException(nameof(newOwner)); } var existingRequest = GetPackageOwnershipRequests(package: package, newOwner: newOwner).FirstOrDefault(); if (existingRequest != null) { return(existingRequest); } var newRequest = new PackageOwnerRequest { PackageRegistrationKey = package.Key, RequestingOwnerKey = requestingOwner.Key, NewOwnerKey = newOwner.Key, ConfirmationCode = CryptographyService.GenerateToken(), RequestDate = DateTime.UtcNow }; _packageOwnerRequestRepository.InsertOnCommit(newRequest); await _packageOwnerRequestRepository.CommitChangesAsync(); return(newRequest); }