Example #1
0
        public OrderDTO AddOrder(OrderDTO orderDto)
        {
            var order         = OrderMapper.DtoToDomain(orderDto);
            var errorMessages = new List <string>();

            if (!OrderValidator.Validate(order, unitOfWork, ref errorMessages))
            {
                throw new InvalidObjectException("Order", orderDto, errorMessages);
            }

            try
            {
                var customer = unitOfWork.CustomerRepository.GetById(order.CustomerId);

                order.CustomerName   = customer.CustomerName;
                order.CustomerNumber = customer.CustomerNumber;

                unitOfWork.OrderRepository.Add(order);
                unitOfWork.Commit();

                return(OrderMapper.DomainToDto(order));
            }
            catch (Exception exception)
            {
                throw new Exception("An exception occured adding customer: ", exception);
            }
        }