|
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace JGCreateDataClasses
{
internal class JSavedProject
{
private Int32 m_RecordNumber = 0;
private String m_LastUpdated = "";
private String m_ClassNameSpace = "";
private String m_ClassName = "None";
private String m_ClassFileSaveDirectory = "";
private JCommon.ClassDataTypes m_ClassDataSource = 0;
private String m_ClassScope = "";
private String m_ModuleVariablePrefix = "";
private String m_AdditionalFunctions = "";
private String m_AdditionalFields = "";
private String m_AccessDatabasePath = "";
private String m_AccessTableName = "";
private Boolean m_IsAccess12;
private Boolean m_UseADODB;
private String m_SQLiteDatabasePath = "";
private String m_SQLiteTableName = "";
private String m_XMLDatabasePath = "";
private String m_XMLTableName = "";
private String m_XMLNameSpace = "";
private String m_XMLDataSetName = "";
// Bare constructor
internal JSavedProject()
{
this.m_RecordNumber = 0;
}
// Constructor from key field number
internal JSavedProject(Int32 recordNumber)
{
JSavedProjectUpdater.GetRecord(recordNumber, this);
}
// Constructor from string override
internal JSavedProject(String className)
{
JSavedProjectUpdater.GetRecord(className, this);
}
// String override for main class - must be public
public override string ToString()
{
return this.m_ClassName;
}
// Lightweight class for adding to ListView, Combo etc
// Contains the Key field and string override
internal class JSavedProjectIndexData
{
internal Int32 RecordNumber;
internal string ClassName = "None";
internal JSavedProjectIndexData()
{
}
internal JSavedProjectIndexData(JSavedProject savedProject)
{
this.RecordNumber = savedProject.RecordNumber;
this.ClassName = savedProject.ClassName;
}
// String override for index data - must be public
public override string ToString()
{
return this.ClassName;
}
}
#region Public Properties
internal Int32 RecordNumber
{
get { return this.m_RecordNumber; }
set { this.m_RecordNumber = value; }
}
internal String LastUpdated
{
get { return this.m_LastUpdated; }
set { this.m_LastUpdated = value; }
}
internal String ClassNameSpace
{
get { return this.m_ClassNameSpace; }
set { this.m_ClassNameSpace = value; }
}
internal String ClassName
{
get { return this.m_ClassName; }
set { this.m_ClassName = value; }
}
internal String ClassFileSaveDirectory
{
get { return this.m_ClassFileSaveDirectory; }
set { this.m_ClassFileSaveDirectory = value; }
}
internal JCommon.ClassDataTypes ClassDataSource
{
get { return this.m_ClassDataSource; }
set { this.m_ClassDataSource = value; }
}
internal String ClassScope
{
get { return this.m_ClassScope; }
set { this.m_ClassScope = value; }
}
internal String ModuleVariablePrefix
{
get { return this.m_ModuleVariablePrefix; }
set { this.m_ModuleVariablePrefix = value; }
}
internal String AdditionalFunctions
{
get { return this.m_AdditionalFunctions; }
set { this.m_AdditionalFunctions = value; }
}
internal String AdditionalFields
{
get { return this.m_AdditionalFields; }
set { this.m_AdditionalFields = value; }
}
internal String AccessDatabasePath
{
get { return this.m_AccessDatabasePath; }
set { this.m_AccessDatabasePath = value; }
}
internal String AccessTableName
{
get { return this.m_AccessTableName; }
set { this.m_AccessTableName = value; }
}
internal Boolean IsAccess12
{
get { return this.m_IsAccess12; }
set { this.m_IsAccess12 = value; }
}
internal Boolean UseADODB
{
get { return this.m_UseADODB; }
set { this.m_UseADODB = value; }
}
internal String SQLiteDatabasePath
{
get { return this.m_SQLiteDatabasePath; }
set { this.m_SQLiteDatabasePath = value; }
}
internal String SQLiteTableName
{
get { return this.m_SQLiteTableName; }
set { this.m_SQLiteTableName = value; }
}
internal String XMLDatabasePath
{
get { return this.m_XMLDatabasePath; }
set { this.m_XMLDatabasePath = value; }
}
internal String XMLTableName
{
get { return this.m_XMLTableName; }
set { this.m_XMLTableName = value; }
}
internal String XMLNameSpace
{
get { return this.m_XMLNameSpace; }
set { this.m_XMLNameSpace = value; }
}
internal String XMLDataSetName
{
get { return this.m_XMLDataSetName; }
set { this.m_XMLDataSetName = value; }
}
#endregion
#region Additional Fields
// Calculated Fields - NB These are not saved in the database
private string m_StringOverride;
private string m_StringOverrideInitialValue;
private string m_Keyfield;
private string m_KeyfieldDataType;
private string m_KeyFieldInitialValue;
public string ClassVariableName
{
get
{
string classVariableName = this.ClassName.Substring(1);
return JCommon.InitialLowerCase(classVariableName);
}
}
internal string IndexClassName
{
get { return this.ClassName + "IndexData"; }
}
public string IndexClassVariableName
{
get { return this.ClassVariableName + "IndexData"; }
}
internal string Keyfield
{
get { return this.m_Keyfield; }
set { this.m_Keyfield = value; }
}
internal string KeyfieldDataType
{
get { return this.m_KeyfieldDataType; }
set { this.m_KeyfieldDataType = value; }
}
internal string KeyFieldInitialValue
{
get { return this.m_KeyFieldInitialValue; }
set { this.m_KeyFieldInitialValue = value; }
}
internal string StringOverrideInitialValue
{
get { return this.m_StringOverrideInitialValue; }
set { this.m_StringOverrideInitialValue = value; }
}
internal string StringOverride
{
get { return this.m_StringOverride; }
set { this.m_StringOverride = value; }
}
internal string PrivateVariableName(string variable)
{
return this.ModuleVariablePrefix + variable;
}
public string UpdaterClassName
{
get { return this.ClassName + "Updater"; }
}
public string AdditionalFunctionsClassName
{
get { return this.ClassName + "Functions"; }
}
internal List<JFieldsData> FieldsDataList
{
get { return GetFieldsDataList(); }
}
private List<JFieldsData> GetFieldsDataList()
{
return JFieldsDataFunctions.GetFieldsDataList(this.RecordNumber);
}
#endregion
}
#region Updater Class
// Steers calls to appropriate updater
static class JSavedProjectUpdater
{
// AddRecord
internal static int AddRecord(JSavedProject savedProject)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.AddRecord(savedProject);
else
return JSavedProjectUDSQLite.AddRecord(savedProject);
}
// Returns all index data in a List
internal static List<JSavedProject.JSavedProjectIndexData> AllIndexData()
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.AllIndexData();
else
return JSavedProjectUDSQLite.AllIndexData();
}
// Returns all records in a List
internal static List<JSavedProject> AllRecords()
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.AllRecords();
else
return JSavedProjectUDSQLite.AllRecords();
}
// Returns all records in a List
internal static List<JSavedProject> AllRecords(string sortField)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.AllRecords(sortField);
else
return JSavedProjectUDSQLite.AllRecords(sortField);
}
// DeleteRecord
internal static bool DeleteRecord(JSavedProject savedProject)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.DeleteRecord(savedProject);
else
return JSavedProjectUDSQLite.DeleteRecord(savedProject);
}
// GetField
internal static object GetField(Int32 recordNumber, string fieldName)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.GetField(recordNumber, fieldName);
else
return JSavedProjectUDSQLite.GetField(recordNumber, fieldName);
}
// GetRecord (From Key Field)
internal static void GetRecord(Int32 recordNumber, JSavedProject savedProject)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
JSavedProjectUDAC.GetRecord(recordNumber, savedProject);
else
JSavedProjectUDSQLite.GetRecord(recordNumber, savedProject);
}
// GetRecord (From string Override)
internal static void GetRecord(string className, JSavedProject savedProject)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
JSavedProjectUDAC.GetRecord(className, savedProject);
else
JSavedProjectUDSQLite.GetRecord(className, savedProject);
}
// UpdateField
internal static bool UpdateField(Int32 recordNumber, string fieldName, object value)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.UpdateField(recordNumber, fieldName, value);
else
return JSavedProjectUDSQLite.UpdateField(recordNumber, fieldName, value);
}
internal static bool UpdateRecord(JSavedProject savedProject)
{
if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
return JSavedProjectUDAC.UpdateRecord(savedProject);
else
return JSavedProjectUDSQLite.UpdateRecord(savedProject);
}
}
#endregion
#region Additional Functions Class
static class JSavedProjectFunctions
{
}
#endregion
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I have been a keen hobbyist programmer since getting my first computer - a Vic 20 (you had to be able to write programs then since few programs were available and all were expensive).
Retired and now living in Pewsey, Wiltshire, where I spend (far too much of) my time writing computer programs to keep my mind active.