コード例 #1
0
 private void Validate(Model.Payment.Payment state)
 {
     if (state.Status != PaymentStatus.Pending)
     {
         throw new InvalidDataException(nameof(state.Status));
     }
 }
コード例 #2
0
ファイル: CompletePayment.cs プロジェクト: psowinski/saga
        public PaymentCompleted Execute(Model.Payment.Payment state)
        {
            Validate(state);
            var evn = CreateEvent <PaymentCompleted>(state);

            evn.OrderStreamId = state.OrderStreamId;
            return(evn);
        }
コード例 #3
0
        private PaymentRequested CreateEvent(Model.Payment.Payment state)
        {
            var evn = CreateEvent <PaymentRequested>(state);

            evn.OrderStreamId = OrderStreamId;
            evn.Total         = Total;
            evn.Description   = Description;
            return(evn);
        }
コード例 #4
0
        private void Validate(Model.Payment.Payment state)
        {
            if (string.IsNullOrWhiteSpace(OrderStreamId))
            {
                throw new InvalidDataException(nameof(OrderStreamId));
            }
            if (Total <= 0)
            {
                throw new InvalidDataException(nameof(Total));
            }
            if (string.IsNullOrWhiteSpace(Description))
            {
                throw new InvalidDataException(nameof(Description));
            }

            if (state.Status != PaymentStatus.Unpaid)
            {
                throw new InvalidDataException(nameof(state.Status));
            }
        }
コード例 #5
0
 public PaymentCancelled Execute(Model.Payment.Payment state)
 {
     Validate(state);
     return(CreateEvent <PaymentCancelled>(state));
 }
コード例 #6
0
 public PaymentRequested Execute(Model.Payment.Payment state)
 {
     Validate(state);
     return(CreateEvent(state));
 }