// ===================================================================================== /// <summary> /// This class reads the content of the data reader object into ChecklistItem business object. /// </summary> /// <param name="Row">DataRow: an Sql DataReader object</param> /// <returns>EvFormField: a formfield object</returns> /// <remarks> /// This method consists of the following steps: /// /// 1. Extract the compatible row data to the formfield object. /// /// 2. Deserialize the xmlData to the formfield design object if it exists. /// /// 3. Deserialize the xmlvalidationRules to the formfield validationRules object if they exist. /// /// 4. Reset the horizontal radion button list enumertion /// /// 5. Ensure that the formfield state is not null. /// /// 6. if skip retrieving comments is selected, fill the comment list and format it /// /// 7. Get the table object and the external selection list object. /// /// 8. Process the NA values in selectionlists. /// /// 9. Update the current formfield state and type object. /// /// 10. Return the formfield object. /// </remarks> // ------------------------------------------------------------------------------------- private EdRecordField getRowData( DataRow Row) { this.LogMethod("getRowData method"); // // Initialise method template table string, a return formfield object and an annotation string. // string stTemplateTable = String.Empty; EdRecordField recordField = new EdRecordField( ); // // Fill the evForm object.l // recordField.Guid = EvSqlMethods.getGuid(Row, EdRecordValues.DB_VALUES_GUID); recordField.RecordGuid = EvSqlMethods.getGuid(Row, EdRecords.DB_RECORD_GUID); recordField.LayoutGuid = EvSqlMethods.getGuid(Row, EdRecordLayouts.DB_LAYOUT_GUID); recordField.FieldGuid = EvSqlMethods.getGuid(Row, EdRecordValues.DB_FIELD_GUID); recordField.FieldId = EvSqlMethods.getString(Row, EdRecordFields.DB_FIELD_ID); String value = EvSqlMethods.getString(Row, EdRecordFields.DB_TYPE_ID); recordField.Design.TypeId = Evado.Model.EvStatics.parseEnumValue <Evado.Model.EvDataTypes> (value); recordField.Design.Title = EvSqlMethods.getString(Row, EdRecordFields.DB_TITLE); recordField.Design.Instructions = EvSqlMethods.getString(Row, EdRecordFields.DB_INSTRUCTIONS); recordField.Design.HttpReference = EvSqlMethods.getString(Row, EdRecordFields.DB_HTTP_REFERENCE); recordField.Design.SectionNo = EvSqlMethods.getInteger(Row, EdRecordFields.DB_SECTION_ID); recordField.Design.Options = EvSqlMethods.getString(Row, EdRecordFields.DB_OPTIONS); recordField.Design.IsSummaryField = EvSqlMethods.getBool(Row, EdRecordFields.DB_SUMMARY_FIELD); recordField.Design.Mandatory = EvSqlMethods.getBool(Row, EdRecordFields.DB_MANDATORY); recordField.Design.AiDataPoint = EvSqlMethods.getBool(Row, EdRecordFields.DB_AI_DATA_POINT); recordField.Design.HideField = EvSqlMethods.getBool(Row, EdRecordFields.DB_HIDDEN); recordField.Design.ExSelectionListId = EvSqlMethods.getString(Row, EdRecordFields.DB_EX_SELECTION_LIST_ID); recordField.Design.ExSelectionListCategory = EvSqlMethods.getString(Row, EdRecordFields.DB_EX_SELECTION_LIST_CATEGORY); recordField.Design.DefaultValue = EvSqlMethods.getString(Row, EdRecordFields.DB_DEFAULT_VALUE); recordField.Design.Unit = EvSqlMethods.getString(Row, EdRecordFields.DB_UNIT); recordField.Design.UnitScaling = EvSqlMethods.getString(Row, EdRecordFields.DB_UNIT_SCALING); recordField.Design.ValidationLowerLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_VALIDATION_LOWER_LIMIT); recordField.Design.ValidationUpperLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_VALIDATION_UPPER_LIMIT); recordField.Design.AlertLowerLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_ALERT_LOWER_LIMIT); recordField.Design.AlertUpperLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_ALERT_UPPER_LIMIT); recordField.Design.NormalRangeLowerLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_NORMAL_LOWER_LIMITD); recordField.Design.NormalRangeUpperLimit = EvSqlMethods.getFloat(Row, EdRecordFields.DB_NORMAL_UPPER_LIMIT); recordField.Design.FieldCategory = EvSqlMethods.getString(Row, EdRecordFields.DB_FIELD_CATEGORY); recordField.Design.AnalogueLegendStart = EvSqlMethods.getString(Row, EdRecordFields.DB_ANALOGUE_LEGEND_START); recordField.Design.AnalogueLegendFinish = EvSqlMethods.getString(Row, EdRecordFields.DB_ANALOGUE_LEGEND_FINISH); recordField.Design.JavaScript = EvSqlMethods.getString(Row, EdRecordFields.DB_JAVA_SCRIPT); recordField.Design.InitialOptionList = EvSqlMethods.getString(Row, EdRecordFields.DB_INITIAL_OPTION_LIST); recordField.Design.InitialVersion = EvSqlMethods.getInteger(Row, EdRecordFields.DB_INITIAL_VERSION); // // if the field is a signature then decrypt the field. // if (recordField.TypeId == EvDataTypes.Signature) { this.LogDebug("Encrypted Signature string"); EvEncrypt encrypt = new EvEncrypt(this.ClassParameters.AdapterGuid, recordField.Guid); encrypt.ClassParameters = this.ClassParameters; value = encrypt.decryptString(recordField.ItemText); this.LogDebug("clear string: " + value); recordField.ItemText = value; this.LogClass(encrypt.Log); } // // Get the table or matric object. // this.processTableRowObject(Row, recordField); // // Return the formfield object. // this.LogMethodEnd("getRowData"); return(recordField); }//END getRowData method.
}//END encrypt Data method. // ===================================================================================== /// <summary> /// This method decrypts the data change object. /// </summary> /// <param name="encryptedData">string: The encrypted data string</param> /// <param name="ItemGuid">Guid: The item Guid</param> /// <returns>EvDataChange: a datachange object</returns> /// <remarks> /// This method consists of the following steps: /// /// 1. Try if encrypted data string exists, deserialize encrypted string to the return datachange object /// /// 2. if not, decrypt the encrypted string to xml datachange string. /// /// 3. Deserialize xml datachange string to the datachange object. /// /// 4. Return the datachange object. /// /// 5. catch - write error message to log and return new datachange object. /// /// </remarks> // ------------------------------------------------------------------------------------- private EvDataChange decryptData(string encryptedData, Guid ItemGuid) { // // Initialise the method status, a return datachange object and an xml datachange string. // this.LogMethod("decryptData method. "); this.LogDebug("encryptedData length: " + encryptedData.Length); this.LogDebug("SiteGuid: " + EvDataChanges._SiteGuid); this.LogDebug("ItemGuid: " + ItemGuid); EvDataChange dataChange = new EvDataChange( ); string xmlDataChange = String.Empty; try { // // Check that whether the change is encrypted. // if (encryptedData.Contains("<EvDataChange xmlns") == true) { this.LogDebug(" Unencrypted audit trail. "); // // deserialise the xml object. // dataChange = Evado.Digital.Model.EvcStatics.DeserialiseObject <EvDataChange> (encryptedData); // // if default reinitialise. // if (dataChange == default(EvDataChange)) { dataChange = new EvDataChange( ); } // // Return the encrypted string. // return(dataChange); } this.LogDebug(" Encrypted audit trail. "); // // Check that we have Guid keys. // if (EvDataChanges._SiteGuid != Guid.Empty && ItemGuid != Guid.Empty) { // // Initialise the encryption object. // EvEncrypt encrypt = new EvEncrypt(EvDataChanges._SiteGuid, ItemGuid); // // Encrypt the data change xml object. // xmlDataChange = encrypt.decryptString(encryptedData); this.LogClass(encrypt.Log); }//END decrypting the data change object. this.LogDebug(" xmlDataChange length: " + xmlDataChange.Length); // // Deserialise the datachange object. // dataChange = Evado.Digital.Model.EvcStatics.DeserialiseObject <EvDataChange> (xmlDataChange); // // if default reinitialise. // if (dataChange == default(EvDataChange)) { dataChange = new EvDataChange( ); } } catch (Exception Ex) { string eventMessage = "Decrypting Error. " + "\r\n Exception: \r\n" + Evado.Digital.Model.EvcStatics.getException(Ex); this.LogClass(eventMessage); Evado.Digital.Model.EvcStatics.WriteToEventLog(_eventLogSource, eventMessage, EventLogEntryType.Error); dataChange = new EvDataChange( ); } // // Return the encrypted string. // return(dataChange); }//END decryptData method.