public void AddInvitation_Test() { InviteManager i = new InviteManager(); i.AddInvitation <GameInvitation>("i1", "r1"); //add 1 a i.AddInvitation <ChatInvitation>("i1", "r1"); //add 1 b i.AddInvitation <ChatInvitation>("i1", "r1"); //idempotence test Assert.AreEqual(2, i.Invitations.Count); i.AddInvitation <GameInvitation>("i2", "r2");//add 2 a Assert.AreEqual(3, i.Invitations.Count); i.RemoveInvitation <GameInvitation>("i1", "r1");//remove 1 a bool res = i.IsInvitationSent <GameInvitation>("i1", "r1"); bool res2 = i.IsInvitationSent <ChatInvitation>("i1", "r1"); Assert.IsFalse(res); Assert.IsTrue(res2); }
/// <summary> /// initiate invitation send to user /// </summary> /// <param name="email">email of recipient</param> /// <returns></returns> public async Task <String> SendInvite(String email) { IdentityUser recipient = await _um.FindByEmailAsync(email); IdentityUser initiator = await _um.GetUserAsync(User); bool res = _im.AddInvitation <GameInvitation>(initiator.Id, recipient.Id); if (res == true) { await _Msgr.SendInvite(initiator, recipient); await _Msgr.UpdateForm(recipient); await _Msgr.UpdateForm(initiator); return("invitation to " + email + " sent"); } else { return("error - invitation to " + email + " already sent"); } }