public SendFriendshipInvitationHandler(
     IInvitationRepository invitationRepository,
     IFriendshipRepository friendshipRepository,
     IUniquePendingInvitationRule rule,
     IClock clock,
     IModuleClient moduleClient)
 {
     _invitationRepository = invitationRepository;
     _friendshipRepository = friendshipRepository;
     _rule         = rule;
     _clock        = clock;
     _moduleClient = moduleClient;
 }
Esempio n. 2
0
        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));
        }