/// <summary> /// Delete or Update each modified value in DataSet /// </summary> /// <param name="interval"></param> /// <param name="ds"></param> /// <param name="overWrite"></param> /// <param name="validationFlag"></param> public void SaveChanges(string interval, GraphData ds, bool overWrite, char validationFlag, bool isModeledData = false, int mrid = 0) { //for (int i = 0; i < ds.Series.Count; i++) foreach (var s in ds.SeriesRows) { if (String.Compare(s.Interval, interval, true) == 0) { DataTable tbl = ds.GetTable(s.TableName); DataTableUtility.PrintRowState(tbl); DataRow[] rows = tbl.Select("", "", DataViewRowState.ModifiedCurrent); foreach (DataRow row in rows) { DateTime t = Convert.ToDateTime(row[0]); // Code for R-table data if (!isModeledData) { if (row[1, DataRowVersion.Current] == DBNull.Value && row[1, DataRowVersion.Original] != DBNull.Value) {// Delete delete_from_hdb(s.hdb_site_datatype_id, t, interval, ds.GraphRow.TimeZone); } else {// update double val = Convert.ToDouble(row[1]); ModifyRase(s.hdb_site_datatype_id, interval, t, val, overWrite, validationFlag, ds.GraphRow.TimeZone); } } // Code for M-table data else { DateTime tEnd = new DateTime(); if (interval.ToLower() == "hour") { tEnd = t.AddHours(1); } else if (interval.ToLower() == "day") { tEnd = t.AddDays(1); } else if (interval.ToLower() == "month") { tEnd.AddMonths(1); } else if (interval.ToLower() == "year") { tEnd = t.AddYears(1); } else { throw new Exception("Editing of modeled " + interval + " data is not supported."); } if (row[1, DataRowVersion.Current] == DBNull.Value && row[1, DataRowVersion.Original] != DBNull.Value) {// Delete delete_from_mtable(mrid, Convert.ToInt32(s.hdb_site_datatype_id), t, tEnd, interval); } else {// update double val = Convert.ToDouble(row[1]); modify_m_table(mrid, Convert.ToInt32(s.hdb_site_datatype_id), t, tEnd, val, interval, true); } } } tbl.AcceptChanges(); } } }