/// <summary>
        /// Updates the process to complete.
        /// </summary>
        /// <param name="completedDateTime">The completed date time.</param>
        public void UpdateProcessToComplete(DateTime completedDateTime)
        {
            this.EnsureProcessCanBeMarkedCompleted();

            HandicapCalculationProcessChangedToCompletedEvent handicapCalculationProcessChangedToCompletedEvent =
                HandicapCalculationProcessChangedToCompletedEvent.Create(this.AggregateId, completedDateTime);

            this.ApplyAndPend(handicapCalculationProcessChangedToCompletedEvent);
        }
        public void HandicapCalculationProcessChangedToCompletedEvent_CanBeCreated_IsCreated()
        {
            HandicapCalculationProcessChangedToCompletedEvent handicapCalculationProcessChangedToCompletedEvent =
                HandicapCalculationProcessChangedToCompletedEvent.Create(HandicapCalculationProcessTestData.AggregateId, HandicapCalculationProcessTestData.CompletedDateTime);

            handicapCalculationProcessChangedToCompletedEvent.ShouldNotBeNull();
            handicapCalculationProcessChangedToCompletedEvent.EventId.ShouldNotBe(Guid.Empty);
            handicapCalculationProcessChangedToCompletedEvent.EventCreatedDateTime.ShouldNotBe(DateTime.MinValue);
            handicapCalculationProcessChangedToCompletedEvent.AggregateId.ShouldBe(HandicapCalculationProcessTestData.AggregateId);
            handicapCalculationProcessChangedToCompletedEvent.CompletedDateTime.ShouldBe(HandicapCalculationProcessTestData.CompletedDateTime);
        }
 /// <summary>
 /// Plays the event.
 /// </summary>
 /// <param name="domainEvent">The domain event.</param>
 private void PlayEvent(HandicapCalculationProcessChangedToCompletedEvent domainEvent)
 {
     this.Status            = HandicapProcessStatus.Completed;
     this.CompletedDateTime = domainEvent.CompletedDateTime;
 }