コード例 #1
0
        void indexTextBox_LostFocus(object sender, EventArgs e)
        {
            if (indexChanged)
            {
                int newIndex;
                if (int.TryParse(indexTextBox.Text, out newIndex))
                {
                    //Check if index is not already taken.
                    if (state.getTakenIndices().Contains(newIndex))
                    {
                        MessageBox.Show("Index already taken, not appended");
                        indexTextBox.Text = todoItem.index.ToString();
                    }
                    else
                    {
                        IEvent @event = new TodoItemIndexChanged(todoItem.id, newIndex);
                        state.LoadAndPersist(@event);
                    }

                }
                else
                {
                    MessageBox.Show("Index can only be an integer");
                    indexTextBox.Clear();
                }
            }
        }
コード例 #2
0
        private IEvent getRandomTodoItemIndexChanged()
        {
            Guid itemToChange = getAvailableTodoItems().ElementAt(differentSeedRandom.Next(getAvailableTodoItems().Count)).id;

            TodoItemIndexChanged newEvent = new TodoItemIndexChanged(itemToChange, getFirstAvailableIndex());
            return newEvent;
        }
 public IEvent transformEvent(TodoItemIndexChanged toTransform, IEvent transformAgainst)
 {
     if (transformAgainst.GetType().Equals(typeof(TodoItemCreated)))
     {
         // Check if index is same.
         TodoItemCreated transformAgainstCreated = (TodoItemCreated)transformAgainst;
         if (transformAgainstCreated.index == toTransform.newIndex)
         {
             return new TodoItemIndexChanged(toTransform.aggregateId, toTransform.newIndex + 1);
         }
     }
     else if (transformAgainst.GetType().Equals(typeof(TodoItemDeleted)))
     {
         //If it's removed then remove this event as well.
         if (toTransform.aggregateId == transformAgainst.aggregateId)
             return new Unused();
     }
     else if (transformAgainst.GetType().Equals(typeof(TodoItemsDeleted)))
     {
         TodoItemsDeleted transformAgainstDeleted= (TodoItemsDeleted) transformAgainst;
         if (transformAgainstDeleted.aggregateIds.Contains(toTransform.aggregateId))
             return new Unused();
     }
     else if (transformAgainst.GetType().Equals(typeof(TodoItemIndexChanged)))
     {
         TodoItemIndexChanged transformAgainstIndex = (TodoItemIndexChanged)transformAgainst;
         if (transformAgainstIndex.newIndex == toTransform.newIndex)
             return new TodoItemIndexChanged(toTransform.aggregateId, toTransform.newIndex +1);
     }
     return toTransform;
 }