//protected void lbhHeaderText_OnClick(object sender, System.EventArgs e)
    //{
    //    try
    //    {
    //        //LinkButton lbhHeaderText = (LinkButton)sender;
    //        string url = "~/PurchaseOrder/PurchaseOrderHeaderText.aspx";
    //        Response.Redirect(url);

    //    }
    //    catch (Exception ex)
    //    {
    //        ExceptionLog(ex);
    //        plMessage.Visible = true;
    //        string sMessage = ex.Message;
    //        displayCustomMessage(sMessage, lblMessage, SystemMessageType.Error);
    //    }
    //}

    protected void gvItem_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridView gvSchedule      = (GridView)e.Row.FindControl("gvSchedule");
            Label    lblItemNo       = (Label)e.Row.FindControl("lblItemNo");
            Label    lblPricePerUnit = (Label)e.Row.FindControl("lblPricePerUnit");
            Label    lblNetPrice     = (Label)e.Row.FindControl("lblNetPrice");
            Label    lblNetAmount    = (Label)e.Row.FindControl("lblNetAmount");

            decimal amount = Convert.ToDecimal(lblPricePerUnit.Text) * Convert.ToDecimal(lblNetPrice.Text);
            lblNetAmount.Text = amount.ToString();

            HyperLink hlItemText  = (HyperLink)e.Row.FindControl("hlItemText");
            HyperLink hlComponent = (HyperLink)e.Row.FindControl("hlComponent");
            HyperLink hlService   = (HyperLink)e.Row.FindControl("hlService");

            hlItemText.NavigateUrl  = "javascript:ShowItemText('" + m_Header.OrderNumber + "','" + lblItemNo.Text + "')";
            hlComponent.NavigateUrl = "javascript:ShowComponent('" + m_Header.OrderNumber + "','" + lblItemNo.Text + "')";
            hlService.NavigateUrl   = "javascript:ShowService('" + m_Header.OrderNumber + "','" + lblItemNo.Text + "')";

            Collection <PurchaseOrderItemSchedule> schedules = PurchaseOrderItemController.GetPurchaseOrderScheduleItems(m_Header.OrderNumber, lblItemNo.Text);
            foreach (PurchaseOrderItemSchedule schedule in schedules)
            {
                m_Schedules.Add(schedule);
            }
            gvSchedule.DataSource = schedules;
            gvSchedule.DataBind();
        }
    }
    private void ShowItems()
    {
        Collection <PurchaseOrderItem> items = PurchaseOrderItemController.GetPurchaseOrderItems(m_Header.OrderNumber);

        m_Items           = items;
        gvItem.DataSource = items;
        gvItem.DataBind();
    }
    private void ShowData()
    {
        string orderNumber = Request.QueryString["OrderNumber"];
        string itemNo      = Request.QueryString["ItemNo"];
        Collection <PurchaseOrderItemText> texts = PurchaseOrderItemController.GetPurchaseOrderItemTexts(orderNumber, itemNo);

        gvData.DataSource = texts;
        gvData.DataBind();
        if (texts.Count == 0)
        {
            lblCount.Text = string.Format("{0} record(s) found. ", texts.Count.ToString());
        }
    }
        public async Task CreatePurchaseOrderItem_Returns_CreatedAtRouteResult()
        {
            //Arrange
            _fixture.MockPurchaseOrderItemRepository.Setup(x => x.CreatePurchaseOrderItemAsync(It.IsAny <CreatePurchaseOrderItemDto>()))
            .ReturnsAsync(_fixture.CreatePurchaseOrderItemDtoResult);

            var controller = new PurchaseOrderItemController(_fixture.MockPurchaseOrderItemRepository.Object);

            //Act
            var result = await controller.CreatePurchaseOrderItem(_fixture.ValidCreatePurchaseOrderItemDto, _fixture.ApiVersion);

            //Assert
            var objectResult = result.Should().BeOfType <CreatedAtRouteResult>().Subject;

            objectResult.StatusCode.Should().Be(201);
            objectResult.RouteValues !["id"].Should().Be(5);
        public async Task GetPurchaseOrderItems_Returns_OkObjectResult()
        {
            //Arrange
            _fixture.MockPurchaseOrderItemRepository.Setup(x => x.GetPurchaseOrderItemsAsync(It.IsAny <long>()))
            .ReturnsAsync(_fixture.PurchaseOrderItems.Where(d => d.PurchaseOrderId == 101));

            var controller = new PurchaseOrderItemController(_fixture.MockPurchaseOrderItemRepository.Object);

            //Act
            var result = await controller.GetPurchaseOrderItems(101);

            //Assert
            var okResult = result.Should().BeOfType <OkObjectResult>().Subject;
            var items    = okResult.Value.Should().BeAssignableTo <IEnumerable <GetPurchaseOrderItemDto> >().Subject;

            okResult.StatusCode.Should().Be(200);
            items.Should().HaveCount(2);
        }
        public async Task GetPurchaseOrderItem_Returns_OkObjectResult()
        {
            //Arrange
            var id = 2;

            _fixture.MockPurchaseOrderItemRepository.Setup(x => x.GetPurchaseOrderItemAsync(It.IsAny <long>()))
            .ReturnsAsync(_fixture.PurchaseOrderItems.Single(d => d.Id == id));

            var controller = new PurchaseOrderItemController(_fixture.MockPurchaseOrderItemRepository.Object);

            //Act
            var result = await controller.GetPurchaseOrderItem(id);

            //Assert
            var okResult = result.Should().BeOfType <OkObjectResult>().Subject;
            var item     = okResult.Value.Should().BeAssignableTo <GetPurchaseOrderItemDto>().Subject;

            okResult.StatusCode.Should().Be(200);
            item.Id.Should().Be(id);
            item.ItemTypeName.Should().Be("Grocery");
            item.ItemName.Should().Be("Salt");
            item.ItemUnit.Should().Be(5);
        }