private OrderItemBuilder() { _odsCode = "ODS1"; _catalogueItemId = "1000-001"; _catalogueItemType = CatalogueItemType.Solution; _catalogueItemName = Guid.NewGuid().ToString(); _provisioningType = ProvisioningType.Patient; _cataloguePriceType = CataloguePriceType.Flat; _cataloguePriceUnit = CataloguePriceUnit.Create("patients", "per patient"); _priceTimeUnit = null; _currencyCode = "GBP"; _quantity = 10; _estimationPeriod = TimeUnit.PerYear; _deliveryDate = DateTime.UtcNow; _price = 2.000m; }
public async Task <Result <int> > CreateAsync(CreateOrderItemRequest request) { if (request is null) { throw new ArgumentNullException(nameof(request)); } var provisioningType = ProvisioningType.FromName(request.ProvisioningTypeName); var cataloguePriceType = CataloguePriceType.FromName(request.CataloguePriceTypeName); var cataloguePriceUnit = CataloguePriceUnit.Create(request.CataloguePriceUnitTierName, request.CataloguePriceUnitDescription); var priceTimeUnit = TimeUnit.FromName(request.PriceTimeUnitName); var estimationPeriod = TimeUnit.FromName(request.EstimationPeriodName); var orderItem = new OrderItem( request.OdsCode, request.CatalogueItemId, request.CatalogueItemType, request.CatalogueItemName, provisioningType, cataloguePriceType, cataloguePriceUnit, priceTimeUnit, request.CurrencyCode, request.Quantity, estimationPeriod, request.DeliveryDate, request.Price); Order order = request.Order; order.AddOrderItem(orderItem, _identityService.GetUserIdentity(), _identityService.GetUserName()); await _orderRepository.UpdateOrderAsync(order); return(Result.Success(orderItem.OrderItemId)); }
public OrderItemBuilder WithCataloguePriceUnit(CataloguePriceUnit cataloguePriceUnit) { _cataloguePriceUnit = cataloguePriceUnit; return(this); }