Example #1
0
 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;
 }
Example #2
0
        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));
        }
Example #3
0
 public OrderItemBuilder WithCataloguePriceUnit(CataloguePriceUnit cataloguePriceUnit)
 {
     _cataloguePriceUnit = cataloguePriceUnit;
     return(this);
 }