Beispiel #1
0
        public void Handle(UpdateTaskNotifyCommand message)
        {
            // Notify back
            var hub = new TaskZeroHub(message.SignalrConnectionId);

            hub.NotifyResultOfUpdateTask(message.TaskId, message.Title);
        }
Beispiel #2
0
        public void Handle(UpdateTaskCommand message)
        {
            // Dehydrates all events from event store for given aggregate
            var task = Repository.GetById <Task>(message.TaskId);

            // Check if there are real changes to apply
            var same = task.IsSameContent(message.Title,
                                          message.Description,
                                          message.DueDate,
                                          message.Priority,
                                          message.Status);

            if (same)
            {
                var notifyNoChanges = new NoUpdatesNotifyCommand(message.SignalrConnectionId)
                {
                    TaskId = task.TaskId,
                    Title  = task.Title
                };
                Bus.Send(notifyNoChanges);
                return;
            }

            // Business validation
            if (!task.CanUpdate(message.Title, message.Description, message.DueDate, message.Priority, message.Status))
            {
                var notifyCantUpdate = new CantUpdateNotifyCommand(message.SignalrConnectionId)
                {
                    TaskId = task.TaskId,
                    Title  = task.Title
                };
                Bus.Send(notifyCantUpdate);
                return;
            }

            // Triggers the UPDATE-GENERAL event
            task.UpdateModel(message.Title, message.Description, message.DueDate, message.Priority, message.Status);
            Repository.Save(task);

            // Notify back
            var notification = new UpdateTaskNotifyCommand(message.SignalrConnectionId)
            {
                TaskId = task.TaskId,
                Title  = task.Title
            };

            Bus.Send(notification);
        }
Beispiel #3
0
        public void Handle(UpdateTaskCommand message)
        {
            // Dehydrates all events from event store for given aggregate
            var task = Repository.GetById <Task>(message.TaskId);

            // Triggers the UPDATE-GENERAL event
            task.UpdateModel(message.Title, message.Description, message.DueDate, message.Priority, message.Status);
            Repository.Save(task);
            // Notify back
            var notification = new UpdateTaskNotifyCommand(message.SignalrConnectionId)
            {
                TaskId = task.TaskId, Title = task.Title
            };

            Bus.Send(notification);
        }