示例#1
0
        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();
            }
        }
示例#2
0
        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;
                    }
                }
            }
        }
示例#3
0
        /// <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))
                );
        }
示例#5
0
        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);
                }
            }
        }
示例#6
0
 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
     {
     }
 }