public static void DeleteRecord(JSONRecord jr, ref string errMsg) { PrimaryKeyTable pk = null; List <KeyValue> kvList = new List <KeyValue>(); ConstructRecordObjectFromPostDeleteRequest(jr, ref pk, ref kvList); try { foreach (KeyValue kv in kvList) { DbUtils.StartTransaction(); pk.DeleteOneRecord(kv); DbUtils.CommitTransaction(); } } catch (Exception ex) { DbUtils.RollBackTransaction(); errMsg = ex.Message; } finally { DbUtils.EndTransaction(); } }
public static void ConstructRecordObjectFromPostSaveRequest(JSONRecord jr, ref PrimaryKeyRecord rec) { PrimaryKeyTable t = (PrimaryKeyTable)DatabaseObjects.GetTableObject(jr.TableName); t.ResetSelectedColumns(); rec = new PrimaryKeyRecord(t); rec.IsExistsInDatabase = jr.IsExistsInDatabase; if ((jr.JRecordValues != null)) { foreach (JRecordValue jRecordValue in jr.JRecordValues) { BaseColumn bc = t.TableDefinition.ColumnList.GetByCodeName(jRecordValue.ColumnName); if (!bc.IsValuesReadOnly) { rec.Parse(jRecordValue.ColumnValue, bc); } else if (t.TableDefinition.IsPrimaryKeyElement(bc)) { KeyValue kv = new KeyValue(); kv.AddElement(jRecordValue.ColumnName, jRecordValue.ColumnValue.ToString()); rec.PrimaryKeyValue = kv; } } } }
/// <summary> /// This method takes a keyValue and a Column and returns an evaluated value of DFKA formula. /// </summary> public static string GetDFKA(String keyValue, BaseColumn col, String formatPattern) { if (keyValue == null) { return(null); } ForeignKey fkColumn = AreasTable.Instance.TableDefinition.GetExpandableNonCompositeForeignKey(col); if (fkColumn == null) { return(null); } String _DFKA = fkColumn.PrimaryKeyDisplayColumns; if (_DFKA.Trim().StartsWith("=")) { String tableName = fkColumn.PrimaryKeyTableDefinition.TableCodeName; PrimaryKeyTable t = (PrimaryKeyTable)DatabaseObjects.GetTableObject(tableName); BaseRecord rec = null; if (t != null) { try { rec = (BaseRecord)t.GetRecordData(keyValue, false); } catch { rec = null; } } if (rec == null) { return(""); } // if the formula is in the format of "= <Primary table>.<Field name>, then pull out the data from the rec object instead of doing formula evaluation string tableCodeName = fkColumn.PrimaryKeyTableDefinition.TableCodeName; string column = _DFKA.Trim('=').Trim(); if (column.StartsWith(tableCodeName + ".", StringComparison.InvariantCultureIgnoreCase)) { column = column.Substring(tableCodeName.Length + 1); } foreach (BaseColumn c in fkColumn.PrimaryKeyTableDefinition.Columns) { if (column == c.CodeName) { return(rec.Format(c)); } } return(EvaluateFormula(_DFKA, rec, null, tableName)); } else { return(null); } }
/// <summary> /// Discovers and adds the provided pair to <see cref="Keys"/>. Column names must be members of <see cref="PrimaryKeyTable"/> and <see cref="ForeignKeyTable"/> (respectively) /// </summary> /// <param name="primaryKeyCol"></param> /// <param name="foreignKeyCol"></param> /// <param name="transaction"></param> public void AddKeys(string primaryKeyCol, string foreignKeyCol, IManagedTransaction transaction = null) { if (_pkColumns == null) { _pkColumns = PrimaryKeyTable.DiscoverColumns(transaction); _fkColumns = ForeignKeyTable.DiscoverColumns(transaction); } Keys.Add( _pkColumns.Single(c => c.GetRuntimeName().Equals(primaryKeyCol, StringComparison.CurrentCultureIgnoreCase)), _fkColumns.Single(c => c.GetRuntimeName().Equals(foreignKeyCol, StringComparison.CurrentCultureIgnoreCase)) ); }
public static void ConstructRecordObjectFromPostDeleteRequest(JSONRecord jr, ref PrimaryKeyTable pk, ref List <KeyValue> kvList) { pk = (PrimaryKeyTable)DatabaseObjects.GetTableObject(jr.TableName); if ((jr.JRecordValues != null)) { foreach (JRecordValue jRecordValue in jr.JRecordValues) { KeyValue kv = new KeyValue(); kv.AddElement(jRecordValue.ColumnName, jRecordValue.ColumnValue.ToString()); kvList.Add(kv); } } }
protected void ExportData() { if (string.IsNullOrEmpty(this.TableId)) { return; } try { PrimaryKeyTable t = (PrimaryKeyTable)DatabaseObjects.GetTableObject(this.TableId); BaseRecord rec = (BaseRecord)t.GetRecordData(this.RecordId, false); if ((this.ImagePercentSize != 100.0 && !(this.ImagePercentSize == 0.0)) || !((this.ImageHeight == 0) || (this.ImageWidth == 0))) { //To display image with shrinking according to user specified height/width or ImagePercentSize ColumnValue fieldData = MiscUtils.GetData(rec, t.TableDefinition.ColumnList.GetByAnyName(this.FieldId)); byte[] binaryData = MiscUtils.GetBinaryData(t.TableDefinition.ColumnList.GetByAnyName(this.FieldId), fieldData); if (binaryData == null || binaryData.Length == 0) { MiscUtils.RegisterJScriptAlert(this, "No Content", "Field " + this.FieldId + " does not contain any binary data.", false, true); return; } byte[] thumbNailSizeImage = GetThumbNailSizeImage(binaryData); string filName = MiscUtils.GetFileNameWithExtension(t.TableDefinition.ColumnList.GetByAnyName(this.FieldId), binaryData, null); MiscUtils.SendToWriteResponse(this.Response, thumbNailSizeImage, filName, t.TableDefinition.ColumnList.GetByAnyName(this.FieldId), fieldData, this.Offset); } else { //Calling ExportFieldData method without image shrinking. if (!MiscUtils.ExportFieldData(this.Response, rec, t.TableDefinition.ColumnList.GetByAnyName(this.FieldId), this.FileName, this.Offset)) { MiscUtils.RegisterJScriptAlert(this, "No Content", "Field " + this.FieldId + " does not contain any binary data.", false, true); return; } } } catch { } }