public ActionResult ViewOrderByID(int OrderID)
        {
            ActionResult response;
            OrdersVM     orderDetails = new OrdersVM();

            try
            {
                //mapping all the data to the view page
                OrdersPO       order      = Mapper.OrdersDOtoOrdersPO(_OrdersDAO.ViewOrderByID(OrderID));
                List <ItemsPO> orderItems = Mapper.ItemsListDOtoPO(_ItemsDAO.ItemsByOrderID(OrderID));

                //sending to business logic layer
                OrdersBO       calcOrder = Mapper.OrdersPOtoOrdersBO(order);
                List <ItemsBO> calcItems = Mapper.ItemsListPOtoBO(orderItems);

                //doing valculations
                calcOrder        = Calculation.PriceTotalCalculator(calcItems);
                order.Pricetotal = calcOrder.Pricetotal;

                //assigning new total price
                OrdersDO newTotal = Mapper.OrdersPOtoOrdersDO(order);
                _OrdersDAO.UpdateOrderPricetotal(newTotal);

                //assigning objects to viewmodel
                orderDetails.Order = order;
                orderDetails.Items = orderItems;

                response = View(orderDetails);
            }
            //logging errors and redirecting
            catch (SqlException sqlEx)
            {
                Logger.SqlErrorLog(sqlEx);
                response = View("Error");
            }
            catch (Exception ex)
            {
                Logger.ErrorLog(ex);
                response = View("Error");
            }
            //return view
            return(response);
        }