public SendFriendshipInvitationHandler( IInvitationRepository invitationRepository, IFriendshipRepository friendshipRepository, IUniquePendingInvitationRule rule, IClock clock, IModuleClient moduleClient) { _invitationRepository = invitationRepository; _friendshipRepository = friendshipRepository; _rule = rule; _clock = clock; _moduleClient = moduleClient; }
public static async Task <Invitation> Create(PersonId sender, PersonId receiver, IUniquePendingInvitationRule rule, IClock clock) { if (sender == receiver) { throw new InvalidInvitationException(); } if (!await rule.IsMet(sender, receiver)) { throw new InvitationAlreadyExistsException(); } return(new Invitation(InvitationId.Create(), sender, receiver, clock.GetCurrentInstant().InUtc().ToDateTimeOffset(), InvitationStatus.Pending)); }