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(); } } }
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; }