Пример #1
0
 public override int GetHashCode()
 {
     unchecked
     {
         int hash = 17;
         hash = hash * 23 + (AccountNumber == null ? 0 : AccountNumber.GetHashCode());
         hash = hash * 23 + (BillToAddressId == default(int) ? 0 : BillToAddressId.GetHashCode());
         hash = hash * 23 + (Comment == null ? 0 : Comment.GetHashCode());
         hash = hash * 23 + (CreditCardApprovalCode == null ? 0 : CreditCardApprovalCode.GetHashCode());
         hash = hash * 23 + (CreditCardId == null ? 0 : CreditCardId.GetHashCode());
         hash = hash * 23 + (CurrencyRateId == null ? 0 : CurrencyRateId.GetHashCode());
         hash = hash * 23 + (CustomerId == default(int) ? 0 : CustomerId.GetHashCode());
         hash = hash * 23 + (DueDate == default(DateTime) ? 0 : DueDate.GetHashCode());
         hash = hash * 23 + (Freight == default(decimal) ? 0 : Freight.GetHashCode());
         hash = hash * 23 + (ModifiedDate == default(DateTime) ? 0 : ModifiedDate.GetHashCode());
         hash = hash * 23 + (OnlineOrderFlag == default(bool) ? 0 : OnlineOrderFlag.GetHashCode());
         hash = hash * 23 + (OrderDate == default(DateTime) ? 0 : OrderDate.GetHashCode());
         hash = hash * 23 + (PurchaseOrderNumber == null ? 0 : PurchaseOrderNumber.GetHashCode());
         hash = hash * 23 + (RevisionNumber == default(byte) ? 0 : RevisionNumber.GetHashCode());
         hash = hash * 23 + (Rowguid == default(Guid) ? 0 : Rowguid.GetHashCode());
         hash = hash * 23 + (SalesOrderNumber == null ? 0 : SalesOrderNumber.GetHashCode());
         hash = hash * 23 + (SalesPersonId == null ? 0 : SalesPersonId.GetHashCode());
         hash = hash * 23 + (ShipDate == null ? 0 : ShipDate.GetHashCode());
         hash = hash * 23 + (ShipMethodId == default(int) ? 0 : ShipMethodId.GetHashCode());
         hash = hash * 23 + (ShipToAddressId == default(int) ? 0 : ShipToAddressId.GetHashCode());
         hash = hash * 23 + (Status == default(byte) ? 0 : Status.GetHashCode());
         hash = hash * 23 + (SubTotal == default(decimal) ? 0 : SubTotal.GetHashCode());
         hash = hash * 23 + (TaxAmt == default(decimal) ? 0 : TaxAmt.GetHashCode());
         hash = hash * 23 + (TerritoryId == null ? 0 : TerritoryId.GetHashCode());
         hash = hash * 23 + (TotalDue == default(decimal) ? 0 : TotalDue.GetHashCode());
         return(hash);
     }
 }
Пример #2
0
 public CreateCreditCard(CreditCardId creditCardId, CreditCardSubscriptionId creditCardSubscriptionId,
                         DateTimeOffset occured)
 {
     CreditCardSubscriptionId = creditCardSubscriptionId;
     CreditCardId             = creditCardId;
     Occured = occured;
 }
Пример #3
0
 public List <RentalDetailDto> GetRentalDetails(Expression <Func <Rental, bool> > filter = null)
 {
     using (ReCapProjectContext context = new ReCapProjectContext())
     {
         var result = from ra in filter == null ? context.Rentals : context.Rentals.Where(filter)
                      join c in context.Cars on ra.CarId equals c.CarId
                      join co in context.Customers on ra.CustomerId equals co.CustomerId
                      join u in context.Users on co.UserId equals u.UserId
                      join b in context.Brands on c.BrandId equals b.BrandId
                      join cc in context.CreditCards on ra.CreditCardId equals cc.CreditCardId
                      into CreditCardId from cc in CreditCardId.DefaultIfEmpty()
                      select new RentalDetailDto
         {
             RentalId            = ra.RentalId,
             BrandName           = b.BrandName,
             ModelName           = c.ModelName,
             ModelYear           = c.ModelYear,
             DailyPrice          = c.DailyPrice,
             UserName            = u.FirstName + " " + u.LastName,
             CompanyName         = co.CompanyName,
             RentDate            = ra.RentDate,
             ReturnDate          = ra.ReturnDate,
             AmountPaye          = ra.AmountPaye,
             CardNameSurname     = cc.CardNameSurname,
             CardNumber          = cc.CardNumber,
             CardExpiryDateMonth = cc.CardExpiryDateMonth,
             CardExpiryDateYear  = cc.CardExpiryDateYear,
             CardCvv             = cc.CardCvv
         };
         return(result.ToList());
     }
 }
Пример #4
0
        public async Task When_AddPaymentCommand_Get_Subscription_Corresponding_To_CreditCard()
        {
            var subId      = CreditCardSubscriptionId.NewId();
            var creditCard = new CreditCard(CreditCardId.NewId(), subId, DateTimeOffset.Now);

            var repo = A.Fake <IAggregateRepository <CreditCard> >();

            A.CallTo(() => repo.GetByIdAsync(creditCard.Id))
            .Returns(creditCard);
            var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >();
            var sub           = new CreditCardSubscription(subId, DateTimeOffset.Now, new CreditCardSubscriptionName("gold"));

            sub.UseNoPaymentFee(DateTimeOffset.Now);
            A.CallTo(subRepository)
            .WithReturnType <Task <CreditCardSubscription> >()
            .Returns(sub);

            var sut = new AddPaymentCommandHandler(repo, subRepository);
            await sut.Handle(new AddPaymentCommand
            {
                AggregateId = creditCard.Id,
                Payment     = new Payment(PaymentId.NewId(), Money.CreateAUD(200), DateTimeOffset.Now)
            }, CancellationToken.None);

            A.CallTo(() => subRepository.GetByIdAsync(subId))
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => repo.SaveAsync(A <CreditCard> ._, A <long> ._))
            .MustHaveHappenedOnceExactly();
        }
Пример #5
0
 public static CreditCard CreateCard(CreditCardId?id = null, CreditCardSubscriptionId?subscriptionId = null)
 {
     return(new CreditCard(
                id ?? CreditCardId.NewId(),
                subscriptionId ?? CreditCardSubscriptionId.NewId(),
                DateTimeOffset.Now
                ));
 }
Пример #6
0
        public async Task <ActionResult <CreditCardCreatedResponse> > AddCard([FromBody] CreateCreditCardModel model)
        {
            var cardId = CreditCardId.NewId();
            await _mediator.Send(new CreateCreditCard(cardId, model.CreditCardSubscriptionId, _clock.Now));

            return(Ok(new CreditCardCreatedResponse {
                CreditCardId = cardId
            }));
        }
Пример #7
0
 public static AddPaymentCommand ToPaymentCommand(this AddPaymentModel model, CreditCardId cardId,
                                                  ISystemClock clock, CurrencyCode currencyCode)
 {
     return(new AddPaymentCommand
     {
         Occured = clock.Now,
         AggregateId = cardId,
         Payment = new Payment(PaymentId.NewId(), Money.Create(model.Amount, currencyCode), model.Date)
     });
 }
Пример #8
0
        public async Task When_AddPayment_To_Non_Existing_card_return_NotFound()
        {
            var result = await _service.AddPayment(CreditCardId.NewId(), new AddPaymentModel
            {
                Date   = DateTimeOffset.Now,
                Amount = 200
            });

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
        }
Пример #9
0
 public override int GetHashCode()
 {
     unchecked
     {
         int hash = 17;
         hash = hash * 23 + (BusinessEntityId == default(int) ? 0 : BusinessEntityId.GetHashCode());
         hash = hash * 23 + (CreditCardId == default(int) ? 0 : CreditCardId.GetHashCode());
         hash = hash * 23 + (ModifiedDate == default(DateTime) ? 0 : ModifiedDate.GetHashCode());
         return(hash);
     }
 }
Пример #10
0
        public async Task <IActionResult> AddPayment([FromRoute] CreditCardId cardId, [FromBody] AddPaymentModel model)
        {
            try
            {
                await _mediator.Send(model.ToPaymentCommand(cardId, _clock, _currencyCode));

                return(Ok());
            }
            catch (AggregateNotFoundException)
            {
                return(NotFound());
            }
        }
Пример #11
0
        public void When_CreditCard_Created_Applies_CreditCardCreated()
        {
            var id    = CreditCardId.NewId();
            var subId = CreditCardSubscriptionId.NewId();
            var sut   = new CreditCard(id, subId, DateTimeOffset.Now);

            var actual = sut.GetUncommittedChanges();

            Assert.True(actual.OfType <CreditCardCreated>()
                        .Any(x => x.CreditCardSubscription == subId && x.AggregateId == id));

            Assert.That(sut.SubscriptionId, Is.EqualTo(subId));
        }
Пример #12
0
        public void When_CreateCardCommand_Subscription_Does_Not_exist_Throw_InvalidOperationException()
        {
            var repo          = A.Fake <IAggregateRepository <CreditCard> >();
            var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >();

            A.CallTo(() => subRepository.ExistsAsync(A <CreditCardSubscriptionId> ._))
            .Returns(false);
            var clock = A.Fake <ISystemClock>();
            var sut   = new CreateCreditCardHandler(repo, subRepository, clock);

            Assert.ThrowsAsync <InvalidOperationException>(
                () => sut.Handle(
                    new CreateCreditCard(CreditCardId.NewId(), CreditCardSubscriptionId.NewId(), DateTimeOffset.Now),
                    CancellationToken.None)
                );
        }
Пример #13
0
        public async Task When_CreateCardCommand_Valid_Arguments_Saves_Card()
        {
            var repo          = A.Fake <IAggregateRepository <CreditCard> >();
            var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >();

            A.CallTo(() => subRepository.ExistsAsync(A <CreditCardSubscriptionId> ._))
            .Returns(true);
            var clock = A.Fake <ISystemClock>();
            var sut   = new CreateCreditCardHandler(repo, subRepository, clock);

            await sut.Handle(
                new CreateCreditCard(CreditCardId.NewId(), CreditCardSubscriptionId.NewId(), DateTimeOffset.Now),
                CancellationToken.None);

            A.CallTo(() => repo.SaveAsync(A <CreditCard> ._, A <long> ._))
            .MustHaveHappenedOnceExactly();
        }
Пример #14
0
        public void When_CreditCard_AddTransaction_Applies_CreditCardTransactionAdded()
        {
            var id    = CreditCardId.NewId();
            var subId = CreditCardSubscriptionId.NewId();

            var transaction =
                Transaction.CreatePayment(new Payment(PaymentId.NewId(), Money.CreateAUD(200), DateTimeOffset.Now));

            var sut = new CreditCard(id, subId, DateTimeOffset.Now);

            var actual = sut.GetUncommittedChanges();

            sut.AddTransaction(transaction, DateTimeOffset.Now);

            Assert.True(actual.OfType <CreditCardTransactionAdded>().Any(x =>
                                                                         x.Transaction.Id == transaction.Id &&
                                                                         x.Transaction.Value == transaction.Value &&
                                                                         x.AggregateId == id));
        }
Пример #15
0
 public CreditCardTransactionAdded(CreditCardId id, DateTimeOffset occured, Transaction transaction) : base(id,
                                                                                                            occured)
 {
     Transaction = transaction;
 }
Пример #16
0
 public GetAllPayments(CreditCardId cardId)
 {
     CardId = cardId;
 }
Пример #17
0
 public CreditCardCreated(CreditCardId id, CreditCardSubscriptionId creditCardSubscription,
                          DateTimeOffset occured) : base(id, occured)
 {
     CreditCardSubscription = creditCardSubscription;
 }
Пример #18
0
 public async Task <ActionResult <IEnumerable <TransactionModel> > > ListPayments([FromRoute] CreditCardId cardId)
 {
     return(Ok(await _mediator.Send(new GetAllPayments(cardId))));
 }