protected void btnChangeSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (Session["SignatureExistingData"] != null)
         {
             List <SignatureComparisionData> list = null;
             for (int i = 0; i < lvExistingSignature.Items.Count; i++)
             {
                 if ((lvExistingSignature.Items[i].FindControl("chkSelect") as CheckBox).Checked)
                 {
                     list = Session["SignatureExistingData"] as List <SignatureComparisionData>;
                     string company        = (lvExistingSignature.Items[i].FindControl("hdnComany") as HiddenField).Value;
                     string plant          = (lvExistingSignature.Items[i].FindControl("hdnPlant") as HiddenField).Value;
                     string machine        = (lvExistingSignature.Items[i].FindControl("hdnMachine") as HiddenField).Value;
                     string paremeter      = (lvExistingSignature.Items[i].FindControl("lblParameter") as Label).Text;
                     string signatureidOld = (lvExistingSignature.Items[i].FindControl("hdnSignatureID") as HiddenField).Value;
                     string signatureid    = (lvExistingSignature.Items[i].FindControl("txtSignature") as TextBox).Text.Trim();
                     var    destiList      = list.Where(k => k.Company == company && k.Plant == plant && k.MachineID == machine && k.SignatureID == signatureidOld && k.ParameterID == paremeter).Select(k => k.SignatureData).ToList();
                     List <SignatureComparisionDetails> finalList = new List <SignatureComparisionDetails>();
                     foreach (var data in destiList)
                     {
                         for (int j = 0; j < data.Count; j++)
                         {
                             SignatureComparisionDetails seqData = new SignatureComparisionDetails();
                             seqData.CompanyID      = company;
                             seqData.PlantID        = plant;
                             seqData.MachineID      = machine;
                             seqData.ParameterID    = paremeter;
                             seqData.SignatureID    = signatureid;
                             seqData.Frequency      = data[j].Frequency;
                             seqData.ParameterValue = data[j].ParameterValue;
                             finalList.Add(seqData);
                         }
                     }
                     list.RemoveAll(k => k.Company == company && k.Plant == plant && k.MachineID == machine && k.SignatureID == signatureidOld && k.ParameterID == paremeter);
                     Session["SignatureExistingData"] = list;;
                     MongoDBAccess.insertSignatureComparisonMasterData(finalList);
                 }
             }
             if (list.Count > 0)
             {
                 ScriptManager.RegisterStartupScript(this, GetType(), "openModal", "openExistingSignatureDataModal();", true);
                 btnOverwrite.Enabled           = false;
                 btnChangeSave.Visible          = false;
                 btnChange.Visible              = true;
                 btnChangeCancel.Visible        = false;
                 lvExistingSignature.DataSource = list;
                 lvExistingSignature.DataBind();
             }
         }
         BindSignatureDetails();
     }
     catch (Exception ex)
     {
     }
 }
 protected void btnInsert_Click(object sender, EventArgs e)
 {
     try
     {
         List <SignatureComparisionDetails> list   = new List <SignatureComparisionDetails>();
         SignatureComparisionDetails        master = new SignatureComparisionDetails();
         master.CompanyID      = ddlCompany.SelectedValue;
         master.PlantID        = ddlPlant.SelectedValue;
         master.MachineID      = ddlMachine.SelectedValue;
         master.ParameterID    = (gvSignatureComparisionDetails.FooterRow.FindControl("lblParemeterIDNew") as Label).Text;
         master.SignatureID    = (gvSignatureComparisionDetails.FooterRow.FindControl("lblSignatureIDNew") as Label).Text;
         master.Frequency      = (gvSignatureComparisionDetails.FooterRow.FindControl("txtSecondsNew") as TextBox).Text.Trim();
         master.ParameterValue = (gvSignatureComparisionDetails.FooterRow.FindControl("txtSignatureValueNew") as TextBox).Text.Trim();
         list.Add(master);
         if (master.CompanyID == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please select Company.');", true);
             return;
         }
         if (master.PlantID == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please select Plant.');", true);
             return;
         }
         if (master.MachineID == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please select Machine.');", true);
             return;
         }
         if (master.ParameterID == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please select Process Parameter.');", true);
             return;
         }
         if (master.SignatureID == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please select Signature ID.');", true);
             return;
         }
         if (master.Frequency == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please enter Seconds.');", true);
             return;
         }
         if (master.ParameterValue == "")
         {
             ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please enter Signature Value.');", true);
             return;
         }
         MongoDBAccess.insertSignatureComparisonMasterData(list);
         BindSignatureDetails();
     }
     catch (Exception ex)
     {
     }
 }
 protected void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         for (int i = 0; i < gvSignatureComparisionDetails.Rows.Count; i++)
         {
             string hdnValue = (gvSignatureComparisionDetails.Rows[i].FindControl("hdnUpdate") as HiddenField).Value;
             if (hdnValue.Equals("update", StringComparison.OrdinalIgnoreCase))
             {
                 string id = (gvSignatureComparisionDetails.Rows[i].FindControl("hdnID") as HiddenField).Value;
                 SignatureComparisionDetails master = new SignatureComparisionDetails();
                 master.CompanyID      = ddlCompany.SelectedValue;
                 master.PlantID        = ddlPlant.SelectedValue;
                 master.MachineID      = ddlMachine.SelectedValue;
                 master.ParameterID    = (gvSignatureComparisionDetails.Rows[i].FindControl("lblParemeterID") as Label).Text;
                 master.SignatureID    = (gvSignatureComparisionDetails.Rows[i].FindControl("lblSignatureID") as Label).Text;
                 master.Frequency      = (gvSignatureComparisionDetails.Rows[i].FindControl("txtSeconds") as TextBox).Text;
                 master.ParameterValue = (gvSignatureComparisionDetails.Rows[i].FindControl("txtSignatureValue") as TextBox).Text;
                 if (master.Frequency == "")
                 {
                     ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please enter Seconds.');", true);
                     return;
                 }
                 if (master.ParameterValue == "")
                 {
                     ScriptManager.RegisterStartupScript(this, GetType(), "warning", "openWarningModal('Please enter Signature Value.');", true);
                     return;
                 }
                 MongoDBAccess.updateSignatureFreqAndParameterMasterDataByID(id, master);
             }
         }
         BindSignatureDetails();
     }
     catch (Exception ex)
     {
     }
 }
        protected void btnCopy_Click(object sender, EventArgs e)
        {
            try
            {
                string srcCompany   = lblSrcCopyCompany.Text;
                string srcPlant     = lblSrcCopyPlant.Text;
                string srcMachine   = lblSrcCopyMachine.Text;
                string srcSignature = lblSrcCopySignature.Text;
                string srcParameter = lblSrcCopyParameter.Text;
                srcParameter = "'" + srcParameter + "'";

                string destiMachine   = ddlDestiCopyMachine.SelectedValue;
                string destiSignature = txtDestiCopySignature.Text;
                string destiParameter = ddlDestiCopyParameter.SelectedValue;


                //get source data details
                //BsonArray parameters = new BsonArray();
                //parameters.Add(srcParameter);
                //var filter = "{'CompanyID':'" + srcCompany + "','PlantID':'" + srcPlant + "',MachineID: '" + srcMachine + "',SignatureID: '" + srcSignature + "',ParameterID: '" + srcParameter + "'}";
                List <SignatureComparisionDetails> sourceDetails = new List <SignatureComparisionDetails>();
                // sourceDetails = _MongoDatabase.GetCollection<SignatureComparisionDetails>("PP_AMGIOT_SignatureMaster").Find(filter).ToList();
                sourceDetails = MongoDBAccess.getSignatureComparisonMasterData(srcCompany, srcPlant, srcMachine, srcParameter, srcSignature);


                List <SignatureComparisionDetails> masterList = new List <SignatureComparisionDetails>();
                for (int i = 0; i < sourceDetails.Count; i++)
                {
                    SignatureComparisionDetails master = new SignatureComparisionDetails();
                    master.CompanyID      = srcCompany;
                    master.PlantID        = srcPlant;
                    master.MachineID      = destiMachine;
                    master.ParameterID    = destiParameter;
                    master.SignatureID    = destiSignature;
                    master.Frequency      = sourceDetails[i].Frequency;
                    master.ParameterValue = sourceDetails[i].ParameterValue;
                    masterList.Add(master);
                }
                MongoDBAccess.insertSignatureComparisonMasterData(masterList);
                BindSignatureDetails();

                //get dsetination detail from db for validation.
                //BsonArray destiparameters = new BsonArray();
                //destiparameters.Add(destiParameter);
                //var destifilter = "{MachineID: '" + destiMachine + "',SignatureID: '" + destiSignature + "',Parameter: '" + destiParameter + "'}";
                //List<SignatureComparisionDetails> destiDetails = new List<SignatureComparisionDetails>();
                //destiDetails = _MongoDatabase.GetCollection<SignatureComparisionDetails>("SignatureComparisionMaster").Find(destifilter).ToList();

                //List<SignatureComparisionDetails> existingDataList = new List<SignatureComparisionDetails>();
                //var collection = _MongoDatabase.GetCollection<SignatureComparisionDetails>("SignatureComparisionMaster");
                //if (destiDetails.Count > 0)
                //{
                //    foreach (SignatureComparisionDetails item in sourceDetails)
                //    {
                //        //check new machine and parameter contain entered signature id

                //    }
                //}
                //else
                //{

                //}
            }
            catch (Exception ex)
            { }
        }
        protected void btnImport_Click(object sender, EventArgs e)
        {
            try
            {
                int       success  = 0;
                string    APP_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                DataTable dtMaster = new DataTable();
                if (fpFile.HasFile)
                {
                    string fileName = fpFile.FileName;
                    if (Path.GetExtension(fileName) != ".xlsx" && Path.GetExtension(fileName) != ".xls")
                    {
                        ScriptManager.RegisterStartupScript(this, GetType(), "RecordsTextopenModaladded", "openWarningModal('Please choose the valid .xlsx or .xls file');", true);
                        return;
                    }
                    else
                    {
                        if (!Directory.Exists(Server.MapPath("ImportedFiles")))
                        {
                            Directory.CreateDirectory(Server.MapPath("ImportedFiles"));
                        }
                        string savedFileName = Server.MapPath("ImportedFiles//" + fileName);
                        fpFile.SaveAs(savedFileName);
                        string Errormsg = "";
                        dtMaster = GetDataTableFromFile(savedFileName);

                        var distinctValues = dtMaster.AsEnumerable()
                                             .Select(row => new {
                            CompanyID   = row.Field <string>("CompanyID"),
                            PlantID     = row.Field <string>("PlantID"),
                            MachineID   = row.Field <string>("MachineID"),
                            ParameterID = row.Field <string>("ParameterID"),
                            SignatureID = row.Field <string>("SignatureID")
                        }).Distinct();
                        List <SignatureComparisionData> existingSeqList = new List <SignatureComparisionData>();
                        foreach (var item in distinctValues)
                        {
                            //if data exist store it in another list
                            if (isSignatureDetailsExist(item.CompanyID, item.PlantID, item.MachineID, item.ParameterID, item.SignatureID))
                            {
                                SignatureComparisionData existingSeqdata = new SignatureComparisionData();
                                existingSeqdata.Company     = item.CompanyID;
                                existingSeqdata.Plant       = item.PlantID;
                                existingSeqdata.MachineID   = item.MachineID;
                                existingSeqdata.ParameterID = item.ParameterID;
                                existingSeqdata.SignatureID = item.SignatureID;
                                List <SignatureComparisionDetails> seqList = new List <SignatureComparisionDetails>();
                                var paramSignatureList = dtMaster.AsEnumerable().Where(myRow => myRow.Field <string>("ParameterID") == item.ParameterID && myRow.Field <string>("SignatureID") == item.SignatureID);
                                foreach (var data in paramSignatureList)
                                {
                                    SignatureComparisionDetails seqData = new SignatureComparisionDetails();
                                    seqData.SignatureID    = data.ItemArray[4].ToString();
                                    seqData.Frequency      = data.ItemArray[5].ToString();
                                    seqData.ParameterValue = data.ItemArray[6].ToString();
                                    seqList.Add(seqData);
                                }
                                existingSeqdata.SignatureData = seqList;
                                existingSeqList.Add(existingSeqdata);
                            }
                            else
                            {
                                List <SignatureComparisionDetails> masterList = new List <SignatureComparisionDetails>();
                                var paramSignatureList = dtMaster.AsEnumerable().Where(myRow => myRow.Field <string>("ParameterID") == item.ParameterID && myRow.Field <string>("SignatureID") == item.SignatureID);
                                foreach (var data in paramSignatureList)
                                {
                                    SignatureComparisionDetails seqData = new SignatureComparisionDetails();
                                    seqData.CompanyID      = data.ItemArray[0].ToString();
                                    seqData.PlantID        = data.ItemArray[1].ToString();
                                    seqData.MachineID      = data.ItemArray[2].ToString();
                                    seqData.ParameterID    = data.ItemArray[3].ToString();
                                    seqData.SignatureID    = data.ItemArray[4].ToString();
                                    seqData.Frequency      = data.ItemArray[5].ToString();
                                    seqData.ParameterValue = data.ItemArray[6].ToString();
                                    masterList.Add(seqData);
                                }
                                MongoDBAccess.insertSignatureComparisonMasterData(masterList);
                            }
                        }
                        if (existingSeqList.Count > 0)
                        {
                            Session["SignatureExistingData"] = existingSeqList;
                            ScriptManager.RegisterStartupScript(this, GetType(), "openModal", "openExistingSignatureDataModal();", true);
                            btnOverwrite.Enabled           = true;
                            btnChangeSave.Visible          = false;
                            btnChange.Visible              = true;
                            btnChangeCancel.Visible        = false;
                            lvExistingSignature.DataSource = existingSeqList;
                            lvExistingSignature.DataBind();
                        }
                        else
                        {
                            Session["SignatureExistingData"] = null;
                        }
                    }
                    BindSignatureDetails();
                    //if (success <= 0)
                    //{
                    //    ScriptManager.RegisterStartupScript(this, GetType(), "RecordsTextopenModaladded", "openErrorModal('Excel file import failed.');", true);
                    //    return;
                    //}
                    //if (success > 0)
                    //{
                    //    gvPMMaster.EditIndex = -1;
                    //    bindPMMasterDetails();
                    //}
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "RecordsTextopenModaladded", "openErrorModal('Please choose a file to import.');", true);
                }
            }
            catch (Exception ex)
            {
            }
        }