/// <summary>
        /// Get Sales Order
        /// </summary>
        /// <param name="accountId"></param>
        /// <param name="salesOrderId"></param>
        /// <returns></returns>
        public async Task <ResponseModel <SalesOrderDataTransformation> > GetSalesOrder(int accountId, int salesOrderId)
        {
            ResponseModel <SalesOrderDataTransformation> returnResponse = new ResponseModel <SalesOrderDataTransformation>();
            SalesOrderDataTransformation salesOrderDataTransformation   = new SalesOrderDataTransformation();

            try
            {
                _inventoryManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString);

                SalesOrder salesOrder = await _inventoryManagementDataService.GetSalesOrder(accountId, salesOrderId);

                salesOrderDataTransformation.SalesOrderId       = salesOrderId;
                salesOrderDataTransformation.SalesOrderNumber   = salesOrder.SalesOrderNumber;
                salesOrderDataTransformation.SalesOrderStatusId = salesOrder.SalesOrderStatusId;
                salesOrderDataTransformation.CustomerName       = salesOrder.CustomerName;
                salesOrderDataTransformation.AddressLine1       = salesOrder.AddressLine1;
                salesOrderDataTransformation.AddressLine2       = salesOrder.AddressLine2;
                salesOrderDataTransformation.City       = salesOrder.City;
                salesOrderDataTransformation.Region     = salesOrder.Region;
                salesOrderDataTransformation.PostalCode = salesOrder.PostalCode;
                salesOrderDataTransformation.OrderTotal = salesOrder.OrderTotal;
                salesOrderDataTransformation.SalesOrderStatusDescription = salesOrder.SalesOrderStatus.Description;
                salesOrderDataTransformation.DateCreated       = salesOrder.DateCreated;
                salesOrderDataTransformation.DateUpdated       = salesOrder.DateUpdated;
                salesOrderDataTransformation.SalesOrderDetails = new List <SalesOrderDetailDataTransformation>();

                foreach (SalesOrderDetail salesOrderDetail in salesOrder.SalesOrderDetails)
                {
                    SalesOrderDetailDataTransformation salesOrderDetailDataTransformation = new SalesOrderDetailDataTransformation();
                    salesOrderDetailDataTransformation.SalesOrderDetailId = salesOrderDetail.SalesOrderDetailId;
                    salesOrderDetailDataTransformation.SalesOrderId       = salesOrderDetail.SalesOrderId;
                    salesOrderDetailDataTransformation.ProductId          = salesOrderDetail.ProductId;
                    salesOrderDetailDataTransformation.ProductNumber      = salesOrderDetail.Product.ProductNumber;
                    salesOrderDetailDataTransformation.ProductDescription = salesOrderDetail.Product.Description;
                    salesOrderDetailDataTransformation.UnitPrice          = salesOrderDetail.UnitPrice;
                    salesOrderDetailDataTransformation.OrderQuantity      = salesOrderDetail.OrderQuantity;
                    salesOrderDetailDataTransformation.ShippedQuantity    = salesOrderDetail.ShippedQuantity;
                    salesOrderDetailDataTransformation.DateCreated        = salesOrderDetail.DateCreated;
                    salesOrderDetailDataTransformation.DateUpdated        = salesOrderDetail.DateUpdated;

                    salesOrderDataTransformation.SalesOrderDetails.Add(salesOrderDetailDataTransformation);
                }

                returnResponse.ReturnStatus = true;
            }
            catch (Exception ex)
            {
                returnResponse.ReturnStatus = false;
                returnResponse.ReturnMessage.Add(ex.Message);
            }
            finally
            {
                _inventoryManagementDataService.CloseConnection();
            }

            returnResponse.Entity = salesOrderDataTransformation;

            return(returnResponse);
        }