public void SetUp() { this.salesAccountUpdateResource = new SalesAccountUpdateResource { TurnoverBandUri = "/tb/10", DiscountSchemeUri = "/ds/10", EligibleForGoodCreditDiscount = true }; this.salesAccount = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "name")) { Id = 111 }; this.discountScheme = new DiscountScheme { DiscountSchemeUri = "/ds/10", TurnoverBandUris = new[] { "/tb/10" } }; this.DiscountingService.GetDiscountScheme(this.salesAccountUpdateResource.DiscountSchemeUri) .Returns(this.discountScheme); this.SalesAccountRepository.GetById(111).Returns(this.salesAccount); this.Response = this.Browser.Put( "/sales/accounts/111", with => { with.Header("Accept", "application/json"); with.Header("Content-Type", "application/json"); with.JsonBody(this.salesAccountUpdateResource); }).Result; }
public void SetUp() { this.DiscountingService.GetDiscountScheme("/ds/1").Returns((DiscountScheme)null); this.updateResource = new SalesAccountUpdateResource { DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1", EligibleForGoodCreditDiscount = true }; this.Result = this.Sut.UpdateSalesAccount(1, this.updateResource, "/employees/100"); }
public IResult <SalesAccount> UpdateSalesAccount( int salesAccountId, SalesAccountUpdateResource updateResource, string updatedByUri) { var account = this.salesAccountRepository.GetById(salesAccountId); if (account == null) { return(new NotFoundResult <SalesAccount>()); } var discountScheme = this.discountingService.GetDiscountScheme(updateResource.DiscountSchemeUri); if (!string.IsNullOrEmpty(updateResource.DiscountSchemeUri) && discountScheme == null) { return(new BadRequestResult <SalesAccount>($"Could not find discount scheme {updateResource.DiscountSchemeUri}")); } try { account.UpdateAccount( updatedByUri, discountScheme, updateResource.TurnoverBandUri, updateResource.EligibleForGoodCreditDiscount, updateResource.EligibleForRebate, updateResource.GrowthPartner); this.transactionManager.Commit(); this.salesAccountUpdatedDispatcher.SendSalesAccountUpdated(account.ToMessage()); } catch (InvalidTurnoverBandException exception) { return(new BadRequestResult <SalesAccount>(exception.Message)); } return(new SuccessResult <SalesAccount>(account)); }