//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region Public Query method //=================================================================================== /// <summary> /// This method executes a query /// </summary> /// <param name="QueryData"> Evado.Integration.Model.EiData wiht query parameters.</param> /// <returns> Evado.Integration.Model.EiData object</returns> //----------------------------------------------------------------------------------- public Evado.Integration.Model.EiData ProcessQuery( Evado.Integration.Model.EiData QueryData) { this.LogMethod("ProcessQuery method."); this.LogDebug("Settings.LoggingLevel: " + this.ClassParameters.LoggingLevel); this.LogDebug("QueryType: " + QueryData.QueryType); this.writeProcessLog("Integration Service - Commence processing query data."); // // Initialise the methods variables and objects. // Evado.Integration.Model.EiData resultData = new Evado.Integration.Model.EiData( ); Evado.Digital.Model.EdQueryParameters queryParameters = new Evado.Digital.Model.EdQueryParameters( ); // // Validate that the query data has parameters. // if (QueryData.ParameterList == null) { this.writeProcessLog("Integration Service - Project identifier not provided."); this.LogDebug("Parameter list is null."); resultData.EventCode = Evado.Integration.Model.EiEventCodes.Integration_Import_Parameter_Error; resultData.ErrorMessage = "Integration Service - Parameter list is empty."; return(resultData); } if (QueryData.ParameterList.Count == 0) { this.writeProcessLog("Integration Service - Parameter list is empty."); this.LogDebug("Parameter list is empty."); resultData.EventCode = Evado.Integration.Model.EiEventCodes.Integration_Import_Parameter_Error; resultData.ErrorMessage = "Integration Service - Parameter list is empty."; return(resultData); } string projectid = QueryData.GetQueryParameterValue(Evado.Integration.Model.EiQueryParameterNames.Project_Id); // // select the query QueryType // switch (QueryData.QueryType) { default: { resultData.EventCode = EiEventCodes.Integration_Import_Type_Id_Error; resultData.ErrorMessage = Evado.Model.EvStatics.enumValueToString(EiEventCodes.Integration_Import_Type_Id_Error); break; } } this.LogMethodEnd("ProcessQuery"); return(resultData); }//END Query method.
}//END ImportCsvData method. //=================================================================================== /// <summary> /// This method executes a CSV import or export query. /// </summary> /// <param name="UserProfile">Evado.Digital.Model.EdUserProfile object.</param> /// <param name="QueryType">EiQueryTypes: Csv encoded data object.</param> /// <param name="CsvDataList">List of String: Csv encoded data object.</param> /// <returns> Evado.Integration.Model.EiData object</returns> //----------------------------------------------------------------------------------- public Evado.Integration.Model.EiData ImportData( Evado.Digital.Model.EdUserProfile UserProfile, EiQueryTypes QueryType, List <String> CsvDataList) { this.LogMethod("ImportData method."); this.LogDebug("UserProfile: " + UserProfile.CommonName); this.LogDebug("QueryType: " + QueryType); this.writeProcessLog("CSV Import Service - Commence processing query data."); // // Initialise the methods variables and objects. // Evado.Integration.Model.EiData resultData = new Evado.Integration.Model.EiData( ); Evado.Digital.Model.EdQueryParameters queryParameters = new Evado.Digital.Model.EdQueryParameters( ); // // Get extract the data from the CSV file. // EiData ImportData = this.getDataObjectFromCsv( CsvDataList, QueryType); /* * if ( this.Settings.LoggingLevel > 4 ) * { * foreach ( EiColumnParameters parm in ImportData.Columns ) * { * string content = String.Format ( "Parm: Field: {0}, Type: {1}, Index: {2}", parm.EvadoFieldId, parm.DataType, parm.Index ); * this.LogValue ( content ); * } * } */ // // Execute the query. // resultData = EI_Services.ProcessQuery(ImportData); this.LogClass(EI_Services.Log); this._ProcessLog.AppendLine(resultData.ProcessLog); this.LogMethodEnd("ImportData"); return(resultData); }//END ImportCsvData method.
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region Public Query method //=================================================================================== /// <summary> /// This method executes a CSV import or export query. /// </summary> /// <param name="QueryData"> Evado.Integration.Model.EiData.</param> /// <returns>List of String</returns> //----------------------------------------------------------------------------------- public List <String> ExportData( Evado.Integration.Model.EiData QueryData) { this.LogMethod("ExportData method."); this.LogDebug("QueryType: " + QueryData.QueryType); this.writeProcessLog("CSV Export Service - Commence processing query data."); // // Initialise the methods variables and objects. // Evado.Integration.Model.EiData resultData = new Evado.Integration.Model.EiData( ); Evado.Digital.Model.EdQueryParameters queryParameters = new Evado.Digital.Model.EdQueryParameters( ); List <String> CsvOutput = new List <string> ( ); // // Query the Ei service // resultData = EI_Services.ProcessQuery(QueryData); this.LogClass(EI_Services.Log); this._ProcessLog.AppendLine(resultData.ProcessLog); if (resultData.DataRows == null) { this.LogDebug("No data was generated by the query."); this.writeProcessLog("No data was generated by the query."); return(new List <string> ( )); } // // Convert the result data object into a CSV file. // var result = this.getCsvFromDataObject(resultData); this.LogMethodEnd("ExportData"); return(result); }//END ImportCsvData method.
} //END getFormFieldColumns method //=================================================================================== /// <summary> /// This method appends the column objects for a list of form fields. /// </summary> /// <param name="Field">Evado.Digital.Model.EvFormField object</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> /// <param name="Row"> Evado.Integration.Model.EiDataRow object</param> //----------------------------------------------------------------------------------- private void getCheckBoxFieldColumnValues( Evado.Digital.Model.EdRecordField Field, Evado.Integration.Model.EiData ResultData, Evado.Integration.Model.EiDataRow Row) { this.LogMethod("getCheckBoxFieldColumnValues method."); // // Iterate through the list of checkbox options // for (int count = 0; count < Field.Design.OptionList.Count; count++) { // // get the option // Evado.Model.EvOption option = Field.Design.OptionList [count]; string fieldId = Field.FieldId + "_" + count + "_" + option.Value; // // Set the checkbox listing output. // int column = ResultData.getColumnNo(fieldId); this.writeProcessLog("Column: " + column + ",\t FieldId: " + fieldId + ", Type: " + Field.TypeId + ", Value: " + Field.ItemValue); if (column > -1) { if (Field.ItemValue.Contains(option.Value) == true) { Row.updateValue(column, "True"); } else { Row.updateValue(column, "False"); } } } //END option iteration loop. } //END getFormFieldColumns method
} //END getFormFieldColumns //=================================================================================== /// <summary> /// This method appends the column objects for a list of form fields. /// </summary> /// <param name="Field">Evado.Digital.Model.EvFormField object</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> //----------------------------------------------------------------------------------- //private void getCheckBoxFieldColumn ( public void getCheckBoxFieldColumn( Evado.Digital.Model.EdRecordField Field, Evado.Integration.Model.EiData ResultData) { this.LogMethod("getCheckBoxFieldColumn method."); // // Iterate through the list of checkbox options // for (int count = 0; count < Field.Design.OptionList.Count; count++) { // // get the option // Evado.Model.EvOption option = Field.Design.OptionList [count]; // //The default data type is text. // ResultData.AddColumn( Evado.Integration.Model.EiDataTypes.Boolean, Field.FieldId + "_" + count + "_" + option.Value); } //END option iteration loop. } //END getFormFieldColumns method
} //END getTableFieldColumn method. //=================================================================================== /// <summary> /// This method appends the column objects for a list of form fields. /// </summary> /// <param name="Field">Evado.Digital.Model.EvFormField object</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> /// <param name="Row"> Evado.Integration.Model.EiDataRow object</param> //----------------------------------------------------------------------------------- //private void getTableFieldColumnValues ( public void getTableFieldColumnValues( Evado.Digital.Model.EdRecordField Field, Evado.Integration.Model.EiData ResultData, Evado.Integration.Model.EiDataRow Row) { this.LogMethod("getTableFieldColumnValues method."); // // Iterate through the table columns // for (int tableRow = 0; tableRow < Field.Table.Rows.Count; tableRow++) { int row = tableRow + 1; // // Iterate through the table columns // for (int tableColumn = 0; tableColumn < Field.Table.Header.Length; tableColumn++) { int column = tableColumn + 1; // // Skip empty header text. // if (Field.Table.Header [tableColumn].Text == String.Empty) { continue; } // // Define the output field identifier. // string fieldId = Field.FieldId + "_" + row + "_" + column + "_" + Field.Table.Header [tableColumn].Text; // // Set the checkbox listing output. // int headerColumn = ResultData.getColumnNo(fieldId); // // Header column found // if (headerColumn > -1) { string value = Field.Table.Rows [tableRow].Column [tableColumn]; this.LogDebug("Column: " + headerColumn + ",\t FieldId: " + fieldId + ", Type: " + Field.TypeId + ", Value: " + value); // // data type switch to handle boolean values. // switch (Field.Table.Header [tableColumn].TypeId) { case Evado.Model.EvDataTypes.Yes_No: case Evado.Model.EvDataTypes.Boolean: { if (value == "yes" || value == "1" || value == "true") { Row.updateValue(headerColumn, "True"); } else { Row.updateValue(headerColumn, "False"); } break; } default: { Row.updateValue(headerColumn, value); break; } } //END data type switch } //END header column index found } //END table column header iteration loop } //END table row iteration loop } //END getTableFieldColumn method.
} //END getFormFieldColumns method //=================================================================================== /// <summary> /// This method appends the column objects for a list of form fields. /// </summary> /// <param name="Field">Evado.Digital.Model.EvFormField object</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> //----------------------------------------------------------------------------------- //private void getTableFieldColumn ( public void getTableFieldColumn( Evado.Digital.Model.EdRecordField Field, Evado.Integration.Model.EiData ResultData) { this.LogMethod("getTableFieldColumn method."); // // Iterate through the table columns // for (int tableRow = 0; tableRow < Field.Table.Header.Length; tableRow++) { int row = tableRow + 1; // // Iterate through the table columns // for (int tableColumn = 0; tableColumn < Field.Table.Header.Length; tableColumn++) { int column = tableColumn + 1; // // get the column text header. // String title = Field.Table.Header [tableColumn].Text; // // Skip empty header text. // if (title == String.Empty) { continue; } // // Defne the parameter. // Evado.Integration.Model.EiColumnParameters parameter = new Evado.Integration.Model.EiColumnParameters( Evado.Integration.Model.EiDataTypes.Text, Field.FieldId + "_" + row + "_" + column + "_" + title); switch (Field.Table.Header [tableColumn].TypeId) { case Evado.Model.EvDataTypes.Numeric: { parameter.DataType = Evado.Integration.Model.EiDataTypes.Floating_Point; break; } case Evado.Model.EvDataTypes.Date: { parameter.DataType = Evado.Integration.Model.EiDataTypes.Date; break; } case Evado.Model.EvDataTypes.Yes_No: case Evado.Model.EvDataTypes.Boolean: { parameter.DataType = Evado.Integration.Model.EiDataTypes.Boolean; break; } }//END data type switch // //The default data type is text. // ResultData.Columns.Add(parameter); } //END table column header iteration loop } //END table row iteration loop } //END getTableFieldColumn method.
} //END getFormFieldColumns //=================================================================================== /// <summary> /// This method appends the form field data values to the output row . /// </summary> /// <param name="FieldList">List of Evado.Digital.Model.EvFormField objects</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> /// <param name="Row"> Evado.Integration.Model.EiDataRow object</param> //----------------------------------------------------------------------------------- // private void getFormFieldColumnData ( public void getFormFieldColumnData( List <Evado.Digital.Model.EdRecordField> FieldList, Evado.Integration.Model.EiData ResultData, Evado.Integration.Model.EiDataRow Row) { this.LogMethod("getFormFieldColumnData method."); // // Initialise the method variables and objects. // int column = 0; // // Iterate through the field list creating column object for each field object. // foreach (Evado.Digital.Model.EdRecordField field in FieldList) { // // add the correct column type for the field data type. // switch (field.TypeId) { case Evado.Model.EvDataTypes.Boolean: { String value = "False"; if (field.ItemValue == "yes" || field.ItemValue == "yes") { value = "True"; } column = ResultData.getColumnNo(field.FieldId); this.writeProcessLog("Column: " + column + ",\t FieldId: " + field.FieldId + ", Type: " + field.TypeId + ", Value: " + field.ItemValue); if (column > -1) { Row.updateValue(column, value.ToString( )); } break; } case Evado.Model.EvDataTypes.Free_Text: { column = ResultData.getColumnNo(field.FieldId); this.writeProcessLog("Column: " + column + ",\t FieldId: " + field.FieldId + ", Type: " + field.TypeId + ", Value: " + field.ItemValue); String text = field.ItemText.Replace("\r", "^"); text = text.Replace("\n", "^"); text = text.Replace("^^", "^"); Row.updateValue(column, text); break; } case Evado.Model.EvDataTypes.Check_Box_List: { this.getCheckBoxFieldColumnValues(field, ResultData, Row); break; } case Evado.Model.EvDataTypes.Table: case Evado.Model.EvDataTypes.Special_Matrix: { this.getTableFieldColumnValues(field, ResultData, Row); break; } default: { column = ResultData.getColumnNo(field.FieldId); this.writeProcessLog("Column: " + column + ",\t FieldId: " + field.FieldId + ", Type: " + field.TypeId + ", Value: " + field.ItemValue); if (column > -1) { Row.updateValue(column, field.ItemValue); } break; } } //END data type switch } //END field iteration loop } //END getFormFieldColumns
}//END Query method. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region general form field methods. //=================================================================================== /// <summary> /// This method appends the column objects for a list of form fields. /// </summary> /// <param name="FieldList">List of Evado.Digital.Model.EvFormField objects</param> /// <param name="ResultData"> Evado.Integration.Model.EiData object</param> //----------------------------------------------------------------------------------- public void getFormFieldColumns( List <Evado.Digital.Model.EdRecordField> FieldList, Evado.Integration.Model.EiData ResultData) { this.LogMethod("getFormFieldColumns method."); this.LogDebug("FieldList.Count: " + FieldList.Count); // // Iterate through the field list creating column object for each field object. // foreach (Evado.Digital.Model.EdRecordField field in FieldList) { this.LogDebug("Field: " + field.FieldId + ", Type: " + field.TypeId); // // add the correct column type for the field data type. // switch (field.TypeId) { case Evado.Model.EvDataTypes.Boolean: { this.LogDebug("ADD: Boolean Column"); // //The default data type is text. // ResultData.AddColumn( Evado.Integration.Model.EiDataTypes.Boolean, field.FieldId); break; } case Evado.Model.EvDataTypes.Numeric: { this.LogDebug("ADD: Floating_Point Column"); // //The default data type is text. // ResultData.AddColumn( Evado.Integration.Model.EiDataTypes.Floating_Point, field.FieldId); break; } case Evado.Model.EvDataTypes.Date: { this.LogDebug("ADD: DateTime Column"); // //The default data type is text. // ResultData.AddColumn( Evado.Integration.Model.EiDataTypes.Date, field.FieldId); break; } case Evado.Model.EvDataTypes.Check_Box_List: { this.LogDebug("ADD: Check_Button_List columns"); this.getCheckBoxFieldColumn(field, ResultData); break; } case Evado.Model.EvDataTypes.Table: case Evado.Model.EvDataTypes.Special_Matrix: { this.LogDebug("ADD: Table columns"); this.getTableFieldColumn(field, ResultData); break; } default: { this.LogDebug("ADD: Text Column"); // //The default data type is text. // ResultData.Columns.Add(new Evado.Integration.Model.EiColumnParameters( Evado.Integration.Model.EiDataTypes.Text, field.FieldId)); break; } } //END data type switch } //END field iteration loop } //END getFormFieldColumns