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); } }
public CreateCreditCard(CreditCardId creditCardId, CreditCardSubscriptionId creditCardSubscriptionId, DateTimeOffset occured) { CreditCardSubscriptionId = creditCardSubscriptionId; CreditCardId = creditCardId; Occured = occured; }
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()); } }
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(); }
public static CreditCard CreateCard(CreditCardId?id = null, CreditCardSubscriptionId?subscriptionId = null) { return(new CreditCard( id ?? CreditCardId.NewId(), subscriptionId ?? CreditCardSubscriptionId.NewId(), DateTimeOffset.Now )); }
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 })); }
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) }); }
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)); }
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); } }
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()); } }
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)); }
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) ); }
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(); }
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)); }
public CreditCardTransactionAdded(CreditCardId id, DateTimeOffset occured, Transaction transaction) : base(id, occured) { Transaction = transaction; }
public GetAllPayments(CreditCardId cardId) { CardId = cardId; }
public CreditCardCreated(CreditCardId id, CreditCardSubscriptionId creditCardSubscription, DateTimeOffset occured) : base(id, occured) { CreditCardSubscription = creditCardSubscription; }
public async Task <ActionResult <IEnumerable <TransactionModel> > > ListPayments([FromRoute] CreditCardId cardId) { return(Ok(await _mediator.Send(new GetAllPayments(cardId)))); }