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);
        }
Beispiel #2
0
        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)));
        }