コード例 #1
0
        public async Task Consume(ConsumeContext <DeleteUser> context)
        {
            var message = context.Message;

            try
            {
                var user = await _userService.DeleteAsync(message.Username);

                var @event = new UserDeleted
                {
                    Id       = user.Id,
                    Username = user.Username
                };

                await _bus.Publish(@event);
            }
            catch (Exception ex)
            {
                var domainException = ex as UserServiceException;
                var failedEvent     = new DeleteUserFailed
                {
                    Id       = domainException?.UserId,
                    Username = message.Username
                };
                await _bus.Publish(failedEvent);

                throw;
            }
        }
コード例 #2
0
        /// <summary>
        ///     Deletes the specified <see cref="User"/>.
        /// </summary>
        /// <param name="name">The name of the User to delete.</param>
        /// <returns>A Result containing the result of the operation.</returns>
        public IResult DeleteUser(string name)
        {
            logger.EnterMethod(xLogger.Params(name));
            logger.Info($"Deleting User '{name}'...");

            IResult retVal    = new Result();
            IUser   foundUser = default(User);

            if (State != State.Running)
            {
                retVal.AddError($"The Manager is not in a state in which it can service requests (Currently {State}).");
            }
            else
            {
                foundUser = FindUser(name);

                if (foundUser != default(User))
                {
                    Configuration.Users.Remove((User)foundUser);
                }
                else
                {
                    retVal.AddError($"The User '{name}' does not exist.");
                }
            }

            if (retVal.ResultCode != ResultCode.Failure)
            {
                Task.Run(() => UserDeleted?.Invoke(this, new UserEventArgs(foundUser)));
            }

            retVal.LogResult(logger);
            logger.ExitMethod();
            return(retVal);
        }
コード例 #3
0
        private void HandleEvent(UserDeleted <TKey> evt)
        {
            var(normalizedEmail, normalizedUser, logins, claims) = reverseLookup[evt.UserId];
            existingEmails.Remove(normalizedEmail);
            existingUserNames.Remove(normalizedUser);

            foreach (var login in logins)
            {
                existingLogins.Remove(login);
            }
            foreach (var claim in claims)
            {
                if (usersByClaims.TryGetValue(claim.Type, out Dictionary <string, HashSet <TKey> > byType))
                {
                    if (byType.TryGetValue(claim.Value, out HashSet <TKey> hs))
                    {
                        hs.Remove(evt.UserId);
                        if (hs.Count == 0)
                        {
                            byType.Remove(claim.Value);
                        }
                    }
                    if (byType.Count == 0)
                    {
                        usersByClaims.Remove(claim.Type);
                    }
                }
            }
            reverseLookup.Remove(evt.UserId);
        }
コード例 #4
0
        partial void OnHandle(UserDeleted @event)
        {
            Entities.UserEntity entity = UserRepository.Load(@event.Rsn);;
            entity.IsLogicallyDeleted = true;

            UserRepository.Update(entity);
        }
コード例 #5
0
        /// <summary>
        /// Deletes the user.
        /// </summary>
        public void DeleteUser()
        {
            this.IsNew     = false;
            this.IsDeleted = true;

            var @event = new UserDeleted(this.Id);

            this.ApplyChange(@event);
        }
コード例 #6
0
        public void TestSerializationOfUserDeleted()
        {
            var evt = new UserDeleted();

            var bytes    = LZ4MessagePackSerializer.Serialize <IEvent>(evt, AspnetIdentityResolver.Instance);
            var eventChk = LZ4MessagePackSerializer.Deserialize <IEvent>(bytes, AspnetIdentityResolver.Instance) as UserDeleted;

            Assert.NotNull(eventChk);
        }
コード例 #7
0
        public void TestSerializationOfUserDeleted1()
        {
            var userId = Guid.NewGuid();
            var evt    = new UserDeleted <Guid>(userId);

            var bytes    = LZ4MessagePackSerializer.Serialize <IEvent>(evt, AspnetIdentityResolver.Instance);
            var eventChk = LZ4MessagePackSerializer.Deserialize <IEvent>(bytes, AspnetIdentityResolver.Instance) as UserDeleted <Guid>;

            Assert.NotNull(eventChk);
            Assert.Equal(evt.UserId, eventChk.UserId);
        }
コード例 #8
0
 public void RemoveUser(int index)
 {
     try
     {
         this.Book.RemoveAt(index);
         UserDeleted.Invoke();
     }
     catch (ArgumentOutOfRangeException)
     {
         Console.WriteLine("No such index. Can't delete.");
     }
 }
コード例 #9
0
        public async Task PublishUserDeleted(Guid id)
        {
            var options = new PublishOptions();
            var @event  = new UserDeleted
            {
                Id = id
            };

            options.SetMessageId(id.ToString());

            await _endpoint.Publish(@event, options);
        }
コード例 #10
0
 public void Handle(UserDeleted @event)
 {
     using (var context = new ProjectionContext(ConnectionString.Get()))
     {
         var entity = new UserSqlEntity()
         {
             Id = @event.AggregateId
         };
         context.Users.Attach(entity);
         context.Users.Remove(entity);
         context.SaveChanges();
     }
 }
コード例 #11
0
        public async Task <IActionResult> DeleteAsync(int id)
        {
            var deleteUser = await _userRepository.DeleteAsync(id, UserID);

            if (deleteUser <= 0)
            {
                return(BadRequest());
            }

            var userDeletedEvent = new UserDeleted(id);
            await _mediator.Publish(userDeletedEvent);

            return(NoContent());
        }
コード例 #12
0
        public async Task UserDeletedConsumeLocalMessage()
        {
            UserDeleted userDeleted = new UserDeleted()
            {
                Email    = "*****@*****.**",
                Username = "******",
                Id       = 1
            };

            var sub = new UserDeletedPubSubscriber(bus, dataContext);
            await sub.Consume(userDeleted, new MessageContext()
            {
                GlobalRequestId = Guid.NewGuid()
            });
        }
コード例 #13
0
        public async Task UserDeletedConsumeMessage()
        {
            UserDeleted userDeleted = new UserDeleted()
            {
                Email    = "*****@*****.**",
                Username = "******",
                Id       = 1
            };

            var sub = new UserDeletedPubSubscriber(bus);
            await sub.Consume(userDeleted, new MessageContext()
            {
                GlobalRequestId = Guid.NewGuid()
            });
        }
コード例 #14
0
        public async Task Consume(UserDeleted message, MessageContext context)
        {
            this.dataContext = DataUtility.GetDataContext(dataContext);
            using (dataContext)
            {
                User user = dataContext.Users.SingleOrDefault(p => p.Email == message.Email);
                if (user == null)
                {
                    Exception ex = new Exception("User Created : not found by Email");
                    ex.Data.Add("Email", message.Email);
                    throw ex;
                }

                dataContext.Users.Remove(user);
                await dataContext.SaveChangesAsync();
            }
        }
コード例 #15
0
        public async Task <IActionResult> DeleteMessage(UserDeleted message)
        {
            if (!message.messageType.Equals("UserDeleted"))
            {
                return(BadRequest());
            }
            var data = await _context.Messages.FindAsync(message.data.UserId);

            if (data == null)
            {
                Notifiy(message.data.UserId, "No UserId Found");
                return(NotFound());
            }

            _context.Messages.Remove(data);
            await _context.SaveChangesAsync();

            Notifiy(message.data.UserId, "Deleted");
            return(Ok());
        }
コード例 #16
0
 public void Apply(UserDeleted e)
 {
 }
コード例 #17
0
 public void Handle(UserDeleted message)
 {
 }
コード例 #18
0
ファイル: UserManager.cs プロジェクト: JSYShaggy/jellyfin
 /// <summary>
 /// Called when [user deleted].
 /// </summary>
 /// <param name="user">The user.</param>
 private void OnUserDeleted(User user)
 {
     UserDeleted?.Invoke(this, new GenericEventArgs <User>(user));
 }
コード例 #19
0
 /// <summary>
 /// Called when [user deleted].
 /// </summary>
 /// <param name="user">The user.</param>
 private void OnUserDeleted(User user)
 {
     UserDeleted?.Invoke(this, new GenericEventArgs <User> {
         Argument = user
     });
 }
コード例 #20
0
ファイル: UserState.cs プロジェクト: mojamcpds/lokad-cqrs-1
 public void When(UserDeleted c)
 {
     Version = -1;
 }
コード例 #21
0
 private void Persist(Content content, UserDeleted @event)
 {
     content.PlayCount--;
 }
コード例 #22
0
 public void When(UserDeleted c)
 {
     Version = -1;
 }
コード例 #23
0
 private async Task Handle(UserDeleted message)
 {
     await _dispatcher.BeginInvokeOnMainThread(async() => await _messenger.SendAsync(message));
 }
コード例 #24
0
 public void Handle(UserDeleted evt)
 {
     _userRepository.Delete(evt.UserId);
 }
コード例 #25
0
 protected void ProcessUserDeleted(UserDeleted @event)
 {
     this.Id        = @event.UserId;
     this.IsDeleted = @event.IsDeleted;
 }
コード例 #26
0
ファイル: DescribeUser.cs プロジェクト: trbngr/lokad-cqrs
 static string When(UserDeleted e)
 {
     return(string.Format("Deleted user {0} from security {1}", e.Id.Id, e.SecurityId.Id));
 }
コード例 #27
0
 public void When(UserDeleted e)
 {
     _send.ToSecurity(new RemoveSecurityItem(e.SecurityId, e.Id));
 }
コード例 #28
0
ファイル: DescribeUser.cs プロジェクト: AGiorgetti/lokad-cqrs
 static string When(UserDeleted e)
 {
     return string.Format("Deleted user {0} from security {1}", e.Id.Id, e.SecurityId.Id);
 }
コード例 #29
0
 protected virtual void OnUserDeleted()
 {
     CreateNotification(EventActionType.Deleted);
     UserDeleted?.Invoke(this, new NewNotificationEventArgs(this));
 }
コード例 #30
0
        public int Serialize(ref byte[] bytes, int offset, UserDeleted <TKey> value, IFormatterResolver formatterResolver)
        {
            var formatter = formatterResolver.GetFormatter <TKey>();

            return(formatter.Serialize(ref bytes, offset, value.UserId, formatterResolver));
        }
コード例 #31
0
 public void Process(UserDeleted @event)
 {
     _users.DeleteUserById(@event.Id);
 }
コード例 #32
0
        public void Handle(DeleteUser request)
        {
            var msg = new UserDeleted(request.Id);

            Send(msg);
        }
コード例 #33
0
 public void RemoveUser(User user)
 {
     this.Book.Remove(user);
     UserDeleted.Invoke();
 }