Exemple #1
0
        public async Task UpdateDate(DateTime newDate, IUpdatedMovementDateValidator validator)
        {
            await validator.EnsureDateValid(this, newDate);

            var previousDate = Date;

            Date = newDate;

            RaiseEvent(new MovementDateChangeEvent(Id, previousDate));
        }
Exemple #2
0
        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));
        }