Exemplo n.º 1
0
        private void btnUpdateData_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGrid.Rows)
            {
                try
                {
                    if (row.Cells["CheckBox"].Value != null && (bool)row.Cells["CheckBox"].Value == true)
                    {
                        // Connect PIServerAFSDK
                        PIServer _PIServerAFSDK = piPointTagSearchPage1.PIServer;

                        // Find PIPoint
                        PIPoint piPoint = PIPoint.FindPIPoint(_PIServerAFSDK, (string)row.Cells["tag"].Value);

                        AFAttribute afAttribute = new AFAttribute(piPoint);

                        AFValue afValue = new AFValue(afAttribute, row.Cells["Value"].Value, AFTime.Parse(row.Cells["Timestamp"].Value.ToString()));

                        if (row.Cells["Annotation"].Value.ToString() != string.Empty)
                        {
                            afValue.SetAnnotation(row.Cells["Annotation"].Value.ToString());
                        }

                        piPoint.UpdateValue(afValue, AFUpdateOption.Replace, AFBufferOption.BufferIfPossible);
                    }
                }
                catch (Exception ex)
                {
                    row.Cells["Message"].Value = ex.Message;
                }
            }

            dataGrid.Refresh();
        }
Exemplo n.º 2
0
        private void btnDeleteData_Click(object sender, EventArgs e)
        {
            List <int> indexToRemove = new List <int>();

            foreach (DataGridViewRow row in dataGrid.Rows)
            {
                if (row.Cells["CheckBox"].Value != null && (bool)row.Cells["CheckBox"].Value == true)
                {
                    try
                    {
                        // Connect PIServerAFSDK
                        PIServer _PIServerAFSDK = piPointTagSearchPage1.PIServer;

                        // Find PIPoint
                        PIPoint piPoint = PIPoint.FindPIPoint(_PIServerAFSDK, (string)row.Cells["tag"].Value);

                        AFAttribute afAttribute = new AFAttribute(piPoint);

                        AFValue afValue = new AFValue(afAttribute, row.Cells["Value"].Value, AFTime.Parse(row.Cells["Timestamp"].Value.ToString()));

                        piPoint.UpdateValue(afValue, AFUpdateOption.Remove, AFBufferOption.BufferIfPossible);

                        if (!row.IsNewRow)
                        {
                            indexToRemove.Add(row.Index);
                        }
                    }
                    catch (Exception ex)
                    {
                        row.Cells["Message"].Value = ex.Message;
                    }
                }
            }

            foreach (var index in indexToRemove.OrderByDescending(i => i))
            {
                dataGrid.Rows.RemoveAt(index);
            }

            dataGrid.Refresh();
        }
Exemplo n.º 3
0
        public bool AddPIValue(string piPoint, string dateString, string value)
        {
            bool piPointPresent = PIPointExists(piPoint);

            if (piPointPresent)
            {
                PIPoint     myPoint   = PIPoint.FindPIPoint(_pi, piPoint);
                PIPointType pointType = myPoint.PointType;

                object val = 0;
                try
                {
                    val = ParseValue(pointType.ToString().ToLower(), value);
                }
                catch (Exception ex)
                {
                    return(false);
                }

                DateTime dateValue;
                AFTime   afTime;
                if (DateTime.TryParse(dateString, out dateValue))
                {
                    afTime = new AFTime(dateValue);
                }
                else
                {
                    return(false);
                }

                AFValue piValue = new AFValue(val, afTime);
                myPoint.UpdateValue(piValue, AFUpdateOption.InsertNoCompression);
                return(true);
            }
            return(false);
        }
Exemplo n.º 4
0
        public void PiInsert(string Product, DataTable dt)
        {
            //**********************Insert records into pi********************************************

            try
            {
                LabEntities       db          = new LabEntities();
                PIServers         myPIServers = new PIServers();
                PIServer          myPIServer  = myPIServers.DefaultPIServer;
                NetworkCredential credential  = new NetworkCredential("labserver", "labserver1");
                myPIServer.Connect(credential);

                Dictionary <string, decimal?> piTagValues = new Dictionary <string, decimal?>();
                var PiTaglist = (from v in db.Lab_TagTable
                                 orderby v.Id
                                 select v).Skip(39).Take(44);

                var date = Convert.ToDateTime(Session["alumina_date"].ToString());

                int utc = DateTime.UtcNow.Hour;
                int dt_ = DateTime.Now.Hour;

                bool dst = DSTcheck();
                if (dst)
                {
                    dt_ = dt_ - 1;
                }
                int diff;
                if (utc > dt_)
                {
                    diff = utc - dt_;
                }
                else
                {
                    diff = utc + 24 - dt_;
                }

                //type is not feed moisture
                if (Product == "ALUMINA")
                {
                    //string s = type.Substring(0, type.Length - 4);
                    //string input = type.Substring(type.Length - 4);
                    //int time = Convert.ToInt16(input.TrimEnd('0'));
                    //DateTime datetime;
                    //TimeSpan ts;
                    //if (time == 24)
                    //{
                    //    ts = new TimeSpan(23, 59, 59);
                    //}
                    //else ts = new TimeSpan(time, 0, 0);


                    //datetime = date + ts;

                    //decimal? s = (decimal?)null;
                    //bool nulloremtpy = string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString());

                    piTagValues.Add("LABALUMINA_LOI", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_P100", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_P200", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_P325", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_BULKDENS", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_SI", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_FE", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_NA", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_ZN", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_MN", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_CA", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_TI", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_AI", string.IsNullOrWhiteSpace(dt.Rows[12]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[12]["value"].ToString()));
                    piTagValues.Add("LABALUMINA_M20", string.IsNullOrWhiteSpace(dt.Rows[13]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[13]["value"].ToString()));


                    foreach (KeyValuePair <string, decimal?> entry in piTagValues)
                    {
                        foreach (var item in PiTaglist)
                        {
                            string TagName      = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5);
                            string TagName_test = item.Pi_Tags_Test;
                            if (TagName == entry.Key)
                            {
                                //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test);
                                PIPoint myPIPoint  = PIPoint.FindPIPoint(myPIServer, TagName); //use this when go to production
                                AFValue currentTag = myPIPoint.CurrentValue();
                                currentTag.Value = Convert.ToString(entry.Value);

                                //string ctv = currentTag.Value.ToString();
                                //DateTime cttimestamp = currentTag.Timestamp;
                                //DateTime d = cttimestamp.Date;
                                currentTag.Timestamp = date.AddHours(diff);



                                if (!string.IsNullOrEmpty(currentTag.Value.ToString()))
                                {
                                    //if (ctv != null && d != date)
                                    //{

                                    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert);
                                    //}
                                    //else
                                    //{
                                    //    currentTag.Timestamp = date.AddHours(diff);
                                    //    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace);
                                    //}
                                }
                            }
                        }
                    }
                }
                else if (Product == "HYDRATE")
                {
                    piTagValues.Add("LABHYDRATE_P100", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_P200", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_P325", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_SI", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_FE", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_NA", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_ZN", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_MN", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_CA", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_TI", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_AI", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_FREEMOIST", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_CSEDS", string.IsNullOrWhiteSpace(dt.Rows[12]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[12]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_INSOLS", string.IsNullOrWhiteSpace(dt.Rows[13]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[13]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_BULKDENS", string.IsNullOrWhiteSpace(dt.Rows[14]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[14]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_HUNTERL", string.IsNullOrWhiteSpace(dt.Rows[15]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[15]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_HUNTERA", string.IsNullOrWhiteSpace(dt.Rows[16]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[16]["value"].ToString()));
                    piTagValues.Add("LABHYDRATE_HUNTERB", string.IsNullOrWhiteSpace(dt.Rows[17]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[17]["value"].ToString()));

                    foreach (KeyValuePair <string, decimal?> entry in piTagValues)
                    {
                        foreach (var item in PiTaglist)
                        {
                            string TagName      = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5);
                            string TagName_test = item.Pi_Tags_Test;
                            if (TagName == entry.Key)
                            {
                                //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test);
                                PIPoint myPIPoint  = PIPoint.FindPIPoint(myPIServer, TagName); // use this when go to production
                                AFValue currentTag = myPIPoint.CurrentValue();
                                currentTag.Value = Convert.ToString(entry.Value);

                                //string ctv = currentTag.Value.ToString();
                                //DateTime cttimestamp = currentTag.Timestamp;
                                //DateTime d = cttimestamp.Date;

                                currentTag.Timestamp = date.AddHours(diff);


                                if (!string.IsNullOrEmpty(currentTag.Value.ToString()))
                                {
                                    //if (ctv != null && d != date)
                                    //{

                                    //    currentTag.Timestamp = date.AddHours(diff);
                                    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert);
                                    //    }
                                    //    else
                                    //    {

                                    //        currentTag.Timestamp = date.AddHours(diff);
                                    //        myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace);
                                    //    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    piTagValues.Add("LABWETHYDRATE_P100", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_P200", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_P325", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_SI", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_FE", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_NA", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_ZN", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_MN", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_CA", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_TI", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_CSEDS", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString()));
                    piTagValues.Add("LABWETHYDRATE_INSOLS", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString()));


                    foreach (KeyValuePair <string, decimal?> entry in piTagValues)
                    {
                        foreach (var item in PiTaglist)
                        {
                            string TagName      = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5);
                            string TagName_test = item.Pi_Tags_Test;
                            if (TagName == entry.Key)
                            {
                                // PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test);
                                PIPoint myPIPoint  = PIPoint.FindPIPoint(myPIServer, TagName); // use this when go to production
                                AFValue currentTag = myPIPoint.CurrentValue();
                                currentTag.Value = Convert.ToString(entry.Value);

                                //string ctv = currentTag.Value.ToString();
                                //DateTime cttimestamp = currentTag.Timestamp;
                                //DateTime d = cttimestamp.Date;


                                currentTag.Timestamp = date.AddHours(diff);

                                if (!string.IsNullOrEmpty(currentTag.Value.ToString()))
                                {
                                    //if (ctv != null && d != date)
                                    //{

                                    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert);
                                    //}
                                    //else
                                    //{
                                    //    currentTag.Timestamp = date.AddHours(diff);
                                    //    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace);
                                    //}
                                }
                            }
                        }
                    }
                }

                myPIServer.Disconnect();
            }
            catch (Exception ex)
            {
            }

            //*************************End*******************************
        }
Exemplo n.º 5
0
        private void DeleteEvents_Click(object sender, EventArgs e)
        {
            //Check TagList's count
            Int32 pointnumber = TagList.Items.Count;

            if (pointnumber < 1)
            {
                MessageBox.Show("Please search PI tags");
                return;
            }
            else
            {
                if (radioButton_AllEvents.Checked)
                {
                    //Delete all events
                    for (int i = 1; i <= pointnumber; ++i)
                    {
                        PIPoint     pt        = PIPoint.FindPIPoint(myPIServer, TagList.Items[i - 1].Text);
                        AFTimeRange timerange = new AFTimeRange();
                        timerange.StartTime = new AFTime(StartTimeTextBox.Text);
                        timerange.EndTime   = new AFTime(EndTimeTextBox.Text);
                        AFValues vals = pt.RecordedValues(timerange, OSIsoft.AF.Data.AFBoundaryType.Inside, "", true);

                        //delete all events within AFValues object
                        if (vals.Count > 0)
                        {
                            pt.UpdateValues(vals, AFUpdateOption.Remove);
                            string[] displayvalues = new string[3];
                            displayvalues[0] = pt.Name;
                            displayvalues[1] = timerange.ToString();
                            displayvalues[2] = "-";
                            ListViewItem lvi = new ListViewItem(displayvalues);
                            UpdateView.Items.Add(lvi);
                        }
                    }
                }
                else
                {
                    //Delete specific events
                    String deletestring = DeleteValueTextBox.Text.ToString();
                    for (int i = 1; i <= pointnumber; ++i)
                    {
                        PIPoint     pt        = PIPoint.FindPIPoint(myPIServer, TagList.Items[i - 1].Text);
                        AFTimeRange timerange = new AFTimeRange();
                        timerange.StartTime = new AFTime(StartTimeTextBox.Text);
                        timerange.EndTime   = new AFTime(EndTimeTextBox.Text);
                        AFValues vals       = pt.RecordedValues(timerange, OSIsoft.AF.Data.AFBoundaryType.Inside, "", true);
                        String   Checktime  = null;
                        String   Checkvalue = null;
                        foreach (AFValue val in vals)
                        {
                            Checktime  = val.Timestamp.LocalTime.ToString();
                            Checkvalue = ReadPIValueString(val);
                            if (Checkvalue == deletestring)
                            {
                                pt.UpdateValue(val, AFUpdateOption.Remove);
                                string[] displayvalues = new string[3];
                                displayvalues[0] = pt.Name;
                                displayvalues[1] = Checktime;
                                displayvalues[2] = Checkvalue;
                                ListViewItem lvi = new ListViewItem(displayvalues);
                                UpdateView.Items.Add(lvi);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public void PiInsert(string area, DataTable dt)
        {
            //**********************Insert records into pi********************************************
            try
            {
                LabEntities       db          = new LabEntities();
                PIServers         myPIServers = new PIServers();
                PIServer          myPIServer  = myPIServers.DefaultPIServer;
                NetworkCredential credential  = new NetworkCredential("labserver", "labserver1");
                myPIServer.Connect(credential);

                var date = Convert.ToDateTime(Session["sec3_date"].ToString());
                int utc  = DateTime.UtcNow.Hour;
                int dt_  = DateTime.Now.Hour;

                bool dst = DSTcheck();
                if (dst)
                {
                    dt_ = dt_ - 1;
                }
                int diff;
                if (utc > dt_)
                {
                    diff = utc - dt_;
                }
                else
                {
                    diff = utc + 24 - dt_;
                }
                if (area == "caustic_clean")
                {
                    var PiTagList = (from v in db.Lab_TagTable
                                     where v.Tag_Name == area
                                     orderby v.Max, v.Min
                                     select v).ToList();
                    DataTable dt_copy = new DataTable();
                    dt_copy = dt.Copy();
                    dt_copy.Columns.RemoveAt(0);
                    dt_copy.Columns.RemoveAt(3);

                    for (int i = 0; i < dt_copy.Rows.Count; i++)
                    {
                        for (int j = 0; j < dt_copy.Columns.Count; j++)
                        {
                            string TagName      = PiTagList[j].Pi_Tags;
                            string TagName_test = PiTagList[j].Pi_Tags_Test;;
                            {
                                //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test);
                                PIPoint myPIPoint  = PIPoint.FindPIPoint(myPIServer, TagName); //-- use this when go to production
                                AFValue currentTag = myPIPoint.CurrentValue();
                                currentTag.Timestamp = date;
                                currentTag.Value     = Convert.ToString(dt_copy.Rows[i][j]);



                                string   ctv         = currentTag.Value.ToString();
                                DateTime cttimestamp = currentTag.Timestamp;
                                DateTime d           = cttimestamp.Date;

                                if (!string.IsNullOrEmpty(currentTag.Value.ToString()))
                                {
                                    currentTag.Value     = Convert.ToString(dt_copy.Rows[i][j]);
                                    currentTag.Timestamp = date.AddHours(diff + i);
                                    myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert);
                                }
                            }
                        }
                    }
                }

                else
                {
                    var PiTagList = (from v in db.Lab_TagTable
                                     where v.Tag_Name == area
                                     orderby v.Max, v.Min
                                     select v).ToList();
                    DataTable dt_copy = new DataTable();
                    dt_copy = dt.Copy();
                    dt_copy.Columns.RemoveAt(0);
                    dt_copy.Columns.RemoveAt(0);
                    {
                        for (int i = 0; i < dt_copy.Rows.Count; i++)
                        {
                            for (int j = 0; j < dt_copy.Columns.Count; j++)
                            {
                                //string TagName = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5);
                                //string TagName_test = item.Pi_Tags_Test;
                                //int g;
                                //if (i != 0)
                                //{
                                //    g = (8 * i) + j;
                                //}
                                //else
                                //    g = j;

                                if (area == "st_topsamples" || area == "tt_topsamples")
                                {
                                    TagName      = PiTagList[j].Pi_Tags;
                                    TagName_test = PiTagList[j].Pi_Tags_Test;;
                                }
                                else
                                {
                                    int g;
                                    if (i != 0)
                                    {
                                        g            = (8 * i) + j;
                                        TagName      = PiTagList[g].Pi_Tags;
                                        TagName_test = PiTagList[g].Pi_Tags_Test;
                                    }
                                    else
                                    {
                                        TagName      = PiTagList[j].Pi_Tags;
                                        TagName_test = PiTagList[j].Pi_Tags_Test;
                                    }
                                }
                                {
                                    //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test);
                                    PIPoint myPIPoint  = PIPoint.FindPIPoint(myPIServer, TagName); //-- use this when go to production
                                    AFValue currentTag = myPIPoint.CurrentValue();

                                    string s = Convert.ToString(dt_copy.Rows[i][j]);
                                    currentTag.Value     = Convert.ToString(dt_copy.Rows[i][j]);
                                    currentTag.Timestamp = date.AddHours(diff);
                                    if (!string.IsNullOrEmpty(currentTag.Value.ToString()))
                                    {
                                        myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert);
                                    }
                                }
                            }
                        }
                    }


                    myPIServer.Disconnect();
                }
            }
            catch (Exception exs)
            {
                string filePath = @"C:\Error.txt";

                using (StreamWriter writer = new StreamWriter(filePath, true))
                {
                    writer.WriteLine("Message :" + exs.Message + "<br/>" + Environment.NewLine + "StackTrace :" + exs.StackTrace +
                                     "" + Environment.NewLine + "Date :" + DateTime.Now.ToString());
                    writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
                }
            }
            //*************************End*******************************
        }