public virtual ActionResult SaveGridData(string tableName, string postData, string databaseType) { if (tableName == null || postData == null) { return new EmptyResult(); } var table = JsonConvert.DeserializeObject<string>(tableName); var saveData = JsonConvert.DeserializeObject<Dictionary<string, string>>(postData); var database = JsonConvert.DeserializeObject<WebISGDatabaseType>(databaseType); // Remove any data that does not have a corresponding database column saveData.Remove(table + "GridTable_id"); saveData.Remove("id"); saveData.Remove("oper"); saveData.Remove("RowId"); var metaData = WebCache.IsgMetaData.FirstOrDefault(x => string.Equals(x.Name, table, StringComparison.CurrentCultureIgnoreCase) && x.DatabaseType == database); var row = new NeonDataTableRowMetaData { Cells = new List<NeonDataTableCellMetaData>() }; // ReSharper disable once LoopCanBePartlyConvertedToQuery foreach (var val in saveData) { if (metaData == null) { continue; } var column = metaData.Columns.FirstOrDefault(col => string.Equals(col.Name, val.Key, StringComparison.CurrentCultureIgnoreCase)); if (column == null) { continue; } var cell = new NeonDataTableCellMetaData { ColumnName = column.Name, IsPrimaryKey = column.IsPrimaryKey, TypeName = column.TypeName, Value = val.Value }; row.Cells.Add(cell); } // ReSharper disable once UnusedVariable var success = metaData != null && WebDataTable.SaveData((metaData.SourceName ?? tableName), row, database); // TODO: handle the success/failure? return new EmptyResult(); }
public static bool SaveData(string tableName, NeonDataTableRowMetaData row, WebISGDatabaseType databaseType) { try { using (var serviceClient = new NeonISGDataServiceClient(Configuration.ActiveNeonDataServiceEndpoint)) { var neonDatabase = Mapper.Map<WebISGDatabaseType, NeonISGDatabaseType>(databaseType); // ReSharper disable once UnusedVariable var rtrn = serviceClient.SaveRow(tableName, row, neonDatabase); } return true; } catch (Exception ex) { throw new Exception(string.Format("Unable to save information to database for table {0}", tableName), ex); } }