internal static bool getHealthVaultModelData() { string connectionString = string.Empty; connectionString = @"Data Source=dev05\sql2k8;Initial Catalog=TSGPK_Healthvault;Integrated Security=True;Asynchronous Processing=true"; Database dbGetHealthVaultModules = new SqlDatabase(connectionString); Database dbGetHealthVaultTypes = new SqlDatabase(connectionString); Database dbGetHealthTypeMapping = new SqlDatabase(connectionString); Database dbGetHealthVaultModuleTypeMapping = new SqlDatabase(connectionString); DbCommand cmdHealthVaultModules = dbGetHealthVaultModules.GetStoredProcCommand("TSG_HV_GetHealthVaultModules"); DbCommand cmdHealthVaultTypes = dbGetHealthVaultTypes.GetStoredProcCommand("TSG_HV_GetHealthVaultTypes"); DbCommand cmdHealthTypeMapping = dbGetHealthTypeMapping.GetStoredProcCommand("TSG_HV_GetHealthTypeMapping"); DbCommand cmdHealthVaultModuleTypeMapping = dbGetHealthVaultModuleTypeMapping.GetStoredProcCommand("TSG_HV_GetHealthVaultModuleTypeMapping"); try { IAsyncResult HealthVaultModules = dbGetHealthVaultModules.BeginExecuteReader(cmdHealthVaultModules, (res1) => { Database db1 = (Database)res1.AsyncState; using (IDataReader reader = db1.EndExecuteReader(res1)) { while (reader.Read()) { Console.WriteLine("HealthvaultModule"); var _healthvaultType = new HealthVaultType(); _healthvaultType.ID = Convert.ToInt32(reader["Id"]); _healthvaultType.TypeName = Convert.ToString(reader["TypeName"]); _healthvaultType.ModuleID = new Guid(reader["ModuleID"].ToString()); _healthvaultType.TypeIDs = Convert.ToString(reader["TypeIDs"]); _healthvaultType.ClassName = Convert.ToString(reader["ClassName"]); _healthvaultType.keyColumn = Convert.ToString(reader["KeyColumn"]); _healthvaultType.keyColumnValue = Convert.ToString(reader["KeyColumnValue"]); _healthvaultTypes.Add(_healthvaultType); } Interlocked.Increment(ref counter); reader.Close(); } }, dbGetHealthVaultModules); IAsyncResult HealthVaultFields = dbGetHealthVaultTypes.BeginExecuteReader(cmdHealthVaultTypes, (res2) => { Database db2 = (Database)res2.AsyncState; using (IDataReader reader = db2.EndExecuteReader(res2)) { while (reader.Read()) { Console.WriteLine("HealthvaultModuleField"); var _field = new HealthVaultFields(); _field.FieldID = Convert.ToInt32(reader["DetailId"]); _field.FieldName = Convert.ToString(reader["Name"]); _field.FieldType = (Convert.ToBoolean(reader["isLookUp"])) ? "Codable" : "noncodable"; _field.isPremitive = Convert.ToBoolean(reader["isPremitiveType"]); _field.PremitiveType = Convert.ToString(reader["PremitiveType"]); _fields.Add(_field); } Interlocked.Increment(ref counter); reader.Close(); } }, dbGetHealthVaultTypes); IAsyncResult HealthVaultModuleTypeMapping = dbGetHealthTypeMapping.BeginExecuteReader(cmdHealthTypeMapping, (res3) => { Database db3 = (Database)res3.AsyncState; using (IDataReader reader = db3.EndExecuteReader(res3)) { while (reader.Read()) { Console.WriteLine("HealthvaultModuleTypeMapping"); var _subfield = new HealthVaultFieldsMapping(); _subfield.MappingID = Convert.ToInt32(reader["MappingID"]); _subfield.MasterFieldID = Convert.ToInt32(reader["MasterTypeID"]); _subfield.SubFieldID = Convert.ToInt32(reader["SubTypeID"]); _subfield.isRequired = Convert.ToBoolean(reader["isRequired"]); _mappings.Add(_subfield); } Interlocked.Increment(ref counter); reader.Close(); } }, dbGetHealthTypeMapping); IAsyncResult HealthTypeMapping = dbGetHealthVaultModuleTypeMapping.BeginExecuteReader(cmdHealthVaultModuleTypeMapping, (res4) => { Database db4 = (Database)res4.AsyncState; using (IDataReader reader = db4.EndExecuteReader(res4)) { while (reader.Read()) { Console.WriteLine("HealthvaultModuleFieldeMapping"); var _typemapping = new HealthVaultTypeFieldMapping(); _typemapping.MappingID = Convert.ToInt32(reader["ID"]); _typemapping.ModuleID = Convert.ToInt32(reader["ModuleID"]); _typemapping.MasterTypeID = Convert.ToInt32(reader["MasterTypeID"]); _typemapping.FieldID = Convert.ToInt32(reader["isRequired"]); _typemappings.Add(_typemapping); } Interlocked.Increment(ref counter); reader.Close(); } }, dbGetHealthVaultModuleTypeMapping); while (counter < 4) { System.Threading.Thread.Sleep(10); } List<HealthModel> a = gethealthVaultModelStructure(); ConsoleApplication3.GenerateDynamicCode module = new ConsoleApplication3.GenerateDynamicCode(); module.createScriptForHalthVaultModuleItem(a, true); return true; } catch (Exception ex) { return false; } }
internal static List<HealthModel> gethealthVaultModelStructure() { List<HealthModel> healthVaultModules = new List<HealthModel>(); #region This Will loop through All Healthvault Modules fetched from Database foreach (var _healthvaultModule in _healthvaultTypes) { //Create a new HealthModel Once We fetch It Will will add it into List<HealthModel> //Instantiate new Health model var healthVaultModule = new HealthModel(); //Instantiate new Healthvault Module Type so that to add it into HealthModel #region Fetch Healthvault Module Type var __healthVaultModule = new HealthVaultType(); var __healthVaultModuleFields = new List<HealthVaultFields>(); #region Fetch Basic Healthvault Type Fields __healthVaultModule.ID = _healthvaultModule.ID; __healthVaultModule.TypeName = _healthvaultModule.TypeName; __healthVaultModule.ModuleID = new Guid(Convert.ToString(_healthvaultModule.ModuleID)); __healthVaultModule.TypeIDs = _healthvaultModule.TypeIDs; __healthVaultModule.ClassName = _healthvaultModule.ClassName; __healthVaultModule.keyColumn = _healthvaultModule.keyColumn; __healthVaultModule.keyColumnValue = _healthvaultModule.keyColumnValue; healthVaultModule.healthVaultModule = __healthVaultModule; #endregion //Fetch All Module to Type mappings in P for the present Module var p = from mapping in _typemappings where mapping.ModuleID == healthVaultModule.healthVaultModule.ID select mapping; #region Go through Each Field Fetched from Datbases and Compare it against the Fields for this module _fields.ForEach( #region _field contains the present value from _fields in Enemurator ( ie health valut data types) _field => p.ToList<HealthVaultTypeFieldMapping>().ForEach( #region _p contains the present value from Module Field Mapping so as to compare with all fields for present Module _p => { // Compare with Typemapping table MastertypeId with HelthVault table FiledId for Module to Field Mapping if (_p.MasterTypeID == _field.FieldID) { #region If the current field in Feild collection is found in Type Mapping Collection var _fieldModel = new HealthVaultFields(); // Fetching All the Field - Field Mapping for Current Field _fieldModel.FieldID = _field.FieldID; _fieldModel.FieldName = _field.FieldName; _fieldModel.FieldType = _field.FieldType; _fieldModel.isPremitive = _field.isPremitive; _fieldModel.PremitiveType = _field.PremitiveType; if (_p.isCollection) { _fieldModel.CollectionObject = true; } //If the Field Does Have any more fields inside if (_field.isPremitive == false) { _fieldModel.healthVaultFields = getChildFields(_field); } __healthVaultModuleFields.Add(_fieldModel); #endregion } healthVaultModule.healtVaultModuleields = __healthVaultModuleFields; } #endregion ) #endregion ); #endregion #endregion healthVaultModules.Add(healthVaultModule); } #endregion return healthVaultModules; }