예제 #1
0
        public OrderDetailVerboseDto Create(CreateOrderDetailDto newOrderDetail, int orderID)
        {
            _dbContext.ValidateData(newOrderDetail);
            var orderDetail = newOrderDetail.ToEntity();

            orderDetail.OrderID = orderID;
            _dbContext.OrderDetail.Add(orderDetail);
            _dbContext.SaveChanges();

            return(orderDetail.ToVerboseDto());
        }
예제 #2
0
        public IActionResult Create([Required][FromBody] CreateOrderDetailDto orderDetail, [FromRoute] int orderID)
        {
            try
            {
                var result = _repo.Create(orderDetail, orderID);

                return(StatusCode((int)HttpStatusCode.Created, result));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest(ex.Message));
            }
        }
예제 #3
0
        public static void ValidateData(this IHDSContext context, CreateOrderDetailDto dto)
        {
            var errors = new StringBuilder();

            // ProductID
            errors.AddIfExists(dto.ProductID.ValidateRequired(ValidationMessages.ProductIDRequired));
            errors.AddIfExists(context.KeyExists <Inventory>(dto.ProductID, ValidationMessages.ProductIDNotFound));
            // Quoted Price
            errors.AddIfExists(dto.QuotedPrice.ValidatePositiveDecimal(ValidationMessages.PriceRequired));
            // Quantity
            errors.AddIfExists(dto.Quantity.ValidateRequired(ValidationMessages.QuantityRequired));
            errors.AddIfExists(dto.Quantity.ValidatePositiveInt(ValidationMessages.QuantityValid));

            if (errors.Length > 0)
            {
                throw new ValidationException(errors.ToString());
            }
        }
예제 #4
0
 public static OrderDetail ToEntity(this CreateOrderDetailDto dto)
 {
     Init();
     return(Mapper.Map <OrderDetail>(dto));
 }