public async Task UpdateDate(DateTime newDate, IUpdatedMovementDateValidator validator) { await validator.EnsureDateValid(this, newDate); var previousDate = Date; Date = newDate; RaiseEvent(new MovementDateChangeEvent(Id, previousDate)); }
public async Task DateNotValid_Throws() { var initialDate = Today; var movement = new Movement(1, NotificationId, initialDate, userId); ObjectInstantiator <Movement> .SetProperty(x => x.Status, MovementStatus.Submitted, movement); A.CallTo(() => validator.EnsureDateValid(movement, A <DateTime> .Ignored)).Throws <MovementDateException>(); var newDate = initialDate.AddDays(5); await Assert.ThrowsAsync <MovementDateException>(() => movement.UpdateDate(newDate, validator)); }
public async Task <ProposedUpdatedMovementDateResponse> HandleAsync(IsProposedUpdatedMovementDateValid message) { var isOutRangeDateInPast = false; var isOutsideConsentPeriod = false; var isOutOfRange = false; var isOutOfRangeOfOriginalDate = false; var movement = await repository.GetById(message.MovementId); try { await validator.EnsureDateValid(movement, message.ProposedDate); } catch (MovementDateOutOfRangeDateInPastException) { isOutRangeDateInPast = true; } catch (MovementDateOutsideConsentPeriodException) { isOutsideConsentPeriod = true; } catch (MovementDateOutOfRangeException) { isOutOfRange = true; } catch (MovementDateOutOfRangeOfOriginalDateException) { isOutOfRangeOfOriginalDate = true; } return(new ProposedUpdatedMovementDateResponse { IsOutRangeDateInPast = isOutRangeDateInPast, IsOutsideConsentPeriod = isOutsideConsentPeriod, IsOutOfRange = isOutOfRange, IsOutOfRangeOfOriginalDate = isOutOfRangeOfOriginalDate }); }
public async Task UpdateDate(DateTime newDate, IUpdatedMovementDateValidator validator) { await validator.EnsureDateValid(this, newDate); var previousDate = Date; Date = newDate; RaiseEvent(new MovementDateChangeEvent(Id, previousDate)); }