private bool TestCommand(AddClaims evt, out IEvent e) { e = null; if (user == null) { return(false); } var claimsToAdd = evt.Claims.Except(user.Claims ?? new Claim[0], ClaimComparer.Instance).ToList(); if (claimsToAdd.Count > 0) { e = new ClaimsAdded(claimsToAdd); } return(true); }
public void TestSerializationOfClaimsAdded() { var evt = new ClaimsAdded(new[] { new Claim("type1", "value1"), new Claim("type2", "value2") }); var bytes = LZ4MessagePackSerializer.Serialize <IEvent>(evt, AspnetIdentityResolver.Instance); var eventChk = LZ4MessagePackSerializer.Deserialize <IEvent>(bytes, AspnetIdentityResolver.Instance) as ClaimsAdded; Assert.NotNull(eventChk); var evtClaims = evt.ClaimsToAdd.ToArray(); var eventChkClaims = eventChk.ClaimsToAdd.ToArray(); Assert.Equal(evtClaims.Length, eventChkClaims.Length); for (int i = 0; i < evtClaims.Length; i++) { Assert.Equal(evtClaims[i].Type, eventChkClaims[i].Type); Assert.Equal(evtClaims[i].Value, eventChkClaims[i].Value); } }
private void HandleEvent(IActorRef _, ClaimsAdded evt) { if (user.Claims == null) { user.Claims = new List <Claim>(); } var claimsToAdd = evt.ClaimsToAdd.Except(user.Claims, ClaimComparer.Instance).ToList(); foreach (var claim in claimsToAdd) { user.Claims.Add(claim); } if (!inSync) { return; } coordinator.Tell(new ActorMessages.UserCoordinator.NotifyUserEvent(new ActorMessages.UserCoordinator.UserClaimsAdded <TKey>(userId, claimsToAdd))); }