protected void gvResult_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int          _id        = Convert.ToInt32(gvResult.DataKeys[e.RowIndex].Values[0].ToString());
            DropDownList _ddlResult = (DropDownList)gvResult.Rows[e.RowIndex].FindControl("ddlResult");

            //DropDownList _ddlhTemperature_humidity_parameters = (DropDownList)gvResult.Rows[e.RowIndex].FindControl("ddlhTemperature_humidity_parameters");

            //TextBox _txtSpecification = (TextBox)gvResult.Rows[e.RowIndex].FindControl("txtSpecification");


            if (_ddlResult != null)
            {
                template_wd_corrosion_coverpage _tmp = this.coverpages.Find(x => x.ID == _id);
                if (_tmp != null)
                {
                    _tmp.result = _ddlResult.SelectedValue;
                    //_tmp.temperature_humidity_parameters_id = Convert.ToInt32(_ddlhTemperature_humidity_parameters.SelectedValue);
                    //_tmp.specification = _txtSpecification.Text;
                    //_tmp.temperature_humidity_parameters = _ddlhTemperature_humidity_parameters.SelectedItem.Text;
                    //
                }
            }

            gvResult.EditIndex  = -1;
            gvResult.DataSource = this.coverpages;
            gvResult.DataBind();
        }
        private void initialPage()
        {
            ddlAssignTo.Items.Clear();
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.LOGIN_SELECT_SPEC), Convert.ToInt32(StatusEnum.LOGIN_SELECT_SPEC) + ""));
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.CHEMIST_TESTING), Convert.ToInt32(StatusEnum.CHEMIST_TESTING) + ""));
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.SR_CHEMIST_CHECKING), Convert.ToInt32(StatusEnum.SR_CHEMIST_CHECKING) + ""));
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.ADMIN_CONVERT_WORD), Convert.ToInt32(StatusEnum.ADMIN_CONVERT_WORD) + ""));
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.LABMANAGER_CHECKING), Convert.ToInt32(StatusEnum.LABMANAGER_CHECKING) + ""));
            ddlAssignTo.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.ADMIN_CONVERT_PDF), Convert.ToInt32(StatusEnum.ADMIN_CONVERT_PDF) + ""));

            tb_m_specification comp = new tb_m_specification();

            comp.specification_id = this.jobSample.specification_id;
            comp.template_id      = this.jobSample.template_id;

            List <tb_m_specification> listSpec = comp.SelectAll().ToList();

            ddlMethod.Items.Clear();
            ddlMethod.DataSource = listSpec.Where(x => !x.A.Equals("Procedure") && !x.A.Equals("0"));
            ddlMethod.DataBind();
            ddlMethod.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, "0"));

            ddlSpecification.Items.Clear();
            ddlSpecification.DataSource = listSpec.Where(x => !x.B.Equals("Specification") && !x.B.Equals("0"));
            ddlSpecification.DataBind();
            ddlSpecification.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, "0"));


            ddlTemp.Items.Clear();
            ddlTemp.DataSource = listSpec.Where(x => !x.C.Equals("Temperature Humidity Parameters") && !x.C.Equals("0"));
            ddlTemp.DataBind();
            ddlTemp.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, "0"));

            //ddlComponent.Items.Clear();
            //ddlComponent.DataSource = comp.SelectAll();
            //ddlComponent.DataBind();
            //ddlComponent.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, "0"));

            //ddlSpecification.Items.Clear();
            //ddlSpecification.DataSource = comp.SelectAll();
            //ddlSpecification.DataBind();
            //ddlSpecification.Items.Insert(0, new ListItem(Constants.PLEASE_SELECT, "0"));



            #region "SAMPLE"
            this.jobSample = new job_sample().SelectByID(this.SampleID);
            StatusEnum status = (StatusEnum)Enum.Parse(typeof(StatusEnum), this.jobSample.job_status.ToString(), true);
            if (this.jobSample != null)
            {
                lbJobStatus.Text = Constants.GetEnumDescription(status);


                RoleEnum userRole = (RoleEnum)Enum.Parse(typeof(RoleEnum), userLogin.role_id.ToString(), true);

                pRemark.Visible        = false;
                pDisapprove.Visible    = false;
                pSpecification.Visible = false;
                pStatus.Visible        = false;
                pUploadfile.Visible    = false;
                pDownload.Visible      = false;
                btnSubmit.Visible      = false;
                switch (userRole)
                {
                case RoleEnum.LOGIN:
                    if (status == StatusEnum.LOGIN_SELECT_SPEC)
                    {
                        pRemark.Visible             = false;
                        pDisapprove.Visible         = false;
                        pSpecification.Visible      = true;
                        pStatus.Visible             = false;
                        pUploadfile.Visible         = false;
                        pDownload.Visible           = false;
                        btnSubmit.Visible           = true;
                        gvResult.Columns[4].Visible = false;
                    }
                    break;

                case RoleEnum.CHEMIST:
                    if (status == StatusEnum.CHEMIST_TESTING)
                    {
                        pRemark.Visible             = false;
                        pDisapprove.Visible         = false;
                        pSpecification.Visible      = false;
                        pStatus.Visible             = false;
                        pUploadfile.Visible         = false;
                        pDownload.Visible           = false;
                        btnSubmit.Visible           = true;
                        gvResult.Columns[4].Visible = true;
                    }
                    break;

                case RoleEnum.SR_CHEMIST:
                    if (status == StatusEnum.SR_CHEMIST_CHECKING)
                    {
                        ddlStatus.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.SR_CHEMIST_APPROVE), Convert.ToInt32(StatusEnum.SR_CHEMIST_APPROVE) + ""));
                        ddlStatus.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.SR_CHEMIST_DISAPPROVE), Convert.ToInt32(StatusEnum.SR_CHEMIST_DISAPPROVE) + ""));
                        pRemark.Visible             = false;
                        pDisapprove.Visible         = false;
                        pSpecification.Visible      = false;
                        pStatus.Visible             = true;
                        pUploadfile.Visible         = false;
                        pDownload.Visible           = false;
                        btnSubmit.Visible           = true;
                        gvResult.Columns[4].Visible = false;
                    }
                    break;

                case RoleEnum.ADMIN:
                    if (status == StatusEnum.ADMIN_CONVERT_PDF || status == StatusEnum.ADMIN_CONVERT_WORD)
                    {
                        pRemark.Visible             = false;
                        pDisapprove.Visible         = false;
                        pSpecification.Visible      = false;
                        pStatus.Visible             = false;
                        pUploadfile.Visible         = true;
                        pDownload.Visible           = true;
                        btnSubmit.Visible           = true;
                        gvResult.Columns[4].Visible = false;
                    }
                    break;

                case RoleEnum.LABMANAGER:
                    if (status == StatusEnum.LABMANAGER_CHECKING)
                    {
                        ddlStatus.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.LABMANAGER_APPROVE), Convert.ToInt32(StatusEnum.LABMANAGER_APPROVE) + ""));
                        ddlStatus.Items.Add(new ListItem(Constants.GetEnumDescription(StatusEnum.LABMANAGER_DISAPPROVE), Convert.ToInt32(StatusEnum.LABMANAGER_DISAPPROVE) + ""));
                        pRemark.Visible             = false;
                        pDisapprove.Visible         = false;
                        pSpecification.Visible      = false;
                        pStatus.Visible             = true;
                        pUploadfile.Visible         = false;
                        pDownload.Visible           = true;
                        btnSubmit.Visible           = true;
                        gvResult.Columns[4].Visible = false;
                    }
                    break;
                }
                txtDateAnalyzed.Text = (this.jobSample.date_chemist_alalyze != null) ? this.jobSample.date_chemist_alalyze.Value.ToString("dd/MM/yyyy") : DateTime.Now.ToString("dd/MM/yyyy");
                pAnalyzeDate.Visible = userRole == RoleEnum.CHEMIST;
            }
            #endregion
            #region "WORKING"
            this.coverpages = template_wd_corrosion_coverpage.FindAllBySampleID(this.SampleID);
            this.refImg     = template_wd_corrosion_img.FindAllBySampleID(this.SampleID);
            if (this.refImg != null && this.refImg.Count > 0)
            {
                gvRefImages.DataSource = this.refImg;
                gvRefImages.DataBind();
            }
            if (this.coverpages != null && this.coverpages.Count > 0)
            {
                this.CommandName = CommandNameEnum.Edit;
                template_wd_corrosion_coverpage cover = this.coverpages[0];
                ddlSpecification.SelectedValue          = cover.specification_id.ToString();
                txtNumberOfPiecesUsedForExtraction.Text = this.coverpages[0].number_of_pieces_used_for_extraction;



                tb_m_specification procedure = new tb_m_specification().SelectByID(this.coverpages[0].procedureNo_id.Value);
                if (procedure != null)
                {
                    ddlMethod.SelectedValue = this.coverpages[0].procedureNo_id.Value.ToString();
                    txtProcedureNo.Text     = procedure.A;
                    cbCheckBox.Checked      = (this.jobSample.is_no_spec == null) ? false : this.jobSample.is_no_spec.Equals("1") ? true : false;

                    tb_m_specification specification = new tb_m_specification().SelectByID(this.coverpages[0].specification_id.Value);
                    if (specification != null)
                    {
                        ddlSpecification.SelectedValue = this.coverpages[0].specification_id.Value.ToString();
                        if (cbCheckBox.Checked)
                        {
                            lbResultDesc.Text = String.Format("This sample is no {0} specification reference", "WD");
                        }
                        else
                        {
                            lbResultDesc.Text = String.Format("The specification is based on Western Digital 's document no. {0}", specification.B);
                        }
                    }

                    if (this.coverpages[0].temperature_humidity_parameters_id != null)
                    {
                        ddlTemp.SelectedValue = this.coverpages[0].temperature_humidity_parameters_id.Value.ToString();

                        tb_m_specification temp = new tb_m_specification().SelectByID(this.coverpages[0].temperature_humidity_parameters_id.Value);
                        if (temp != null)
                        {
                            this.coverpages[0].temperature_humidity_parameters = temp.C;
                        }
                    }
                }

                gvResult.DataSource = this.coverpages;
                gvResult.DataBind();
            }
            else
            {
                this.CommandName = CommandNameEnum.Add;


                this.coverpages = new List <template_wd_corrosion_coverpage>();
                template_wd_corrosion_coverpage cov = new template_wd_corrosion_coverpage();

                cov.ID        = 1;
                cov.sample_id = this.SampleID;
                cov.number_of_pieces_used_for_extraction = txtNumberOfPiecesUsedForExtraction.Text;

                cov.temperature_humidity_parameters = "85oC, 85%RH, 24hours";
                cov.specification = "No observable discoloration or spots at 40x";
                cov.result        = "";
                this.coverpages.Add(cov);
                gvResult.DataSource = this.coverpages;
                gvResult.DataBind();
            }
            #endregion

            if (status == StatusEnum.CHEMIST_TESTING || userLogin.role_id == Convert.ToInt32(RoleEnum.CHEMIST))
            {
                //#region ":: STAMP ANALYZED DATE ::"
                //if (userLogin.role_id == Convert.ToInt32(RoleEnum.CHEMIST))
                //{
                //    if (this.jobSample.date_chemist_alalyze == null)
                //    {
                //        this.jobSample.date_chemist_alalyze = DateTime.Now;
                //        this.jobSample.Update();
                //    }
                //}
                //#endregion


                pRefImage.Visible              = true;
                gvResult.Columns[3].Visible    = true;
                gvResult.Columns[4].Visible    = false;
                gvRefImages.Columns[2].Visible = true;
                txtProcedureNo.ReadOnly        = false;
                txtNumberOfPiecesUsedForExtraction.ReadOnly = false;
            }
            else
            {
                pRefImage.Visible              = false;
                gvResult.Columns[3].Visible    = false;
                gvResult.Columns[4].Visible    = false;
                gvRefImages.Columns[2].Visible = false;
                txtProcedureNo.ReadOnly        = true;
                txtNumberOfPiecesUsedForExtraction.ReadOnly = true;
            }

            switch (lbJobStatus.Text)
            {
            case "CONVERT_PDF":
                litDownloadIcon.Text = "<i class=\"fa fa-file-pdf-o\"></i>";
                break;

            default:
                litDownloadIcon.Text = "<i class=\"fa fa-file-word-o\"></i>";
                break;
            }
        }