Пример #1
0
//		public void New(
//			string applicationPath_in,
//			string documentationName_in,
//			dNotifyBack notifyBack_in
//		) {
//			if (notifyBack_in != null) notifyBack_in("creating...", true);
//			#region DocMetadata _metadata_temp = new DocMetadata(); ...;
//			XS__documentation _metadata_temp = new XS__documentation();
//			_metadata_temp.DocumentationName = documentationName_in;
//			#endregion
//
//			if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
//			#region string _xmlfile = ...;
//			string _xmlfile = string.Format(
//				"{0}{1}OGenDoc-metadatas{1}MD_{2}.OGenDoc-metadata.xml",
//				/*0*/applicationPath_in,
//				/*1*/System.IO.Path.DirectorySeparatorChar,
//				/*2*/documentationName_in
//			);
//			#endregion
//			_metadata_temp.SaveState_toFile(_xmlfile);
//
//			if (notifyBack_in != null) notifyBack_in("... finished!", true);
//			if (notifyBack_in != null) notifyBack_in("", true);
//
//			Open(
//				_xmlfile,
//				true,
//				notifyBack_in
//			);
//		}
        #endregion
        #region public void Open(...);
        public void Open(
            string filename_in,
            bool force_doNOTsave_in,
            dNotifyBack notifyBack_in
            )
        {
            #region Checking...
            if (this.hasChanges)
            {
                if (!force_doNOTsave_in)
                {
                    throw new Exception(string.Format(
                                            "{0}.{1}.Open(): - must save before open",
                                            this.GetType().Namespace,
                                            this.GetType().Name
                                            ));
                }
            }
            #endregion
            filename_ = filename_in;

            if (notifyBack_in != null)
            {
                notifyBack_in("opening...", true);
            }
            if (notifyBack_in != null)
            {
                notifyBack_in("- reading metadata from xml file", true);
            }

            diagram_ = XS__diagram.Load_fromFile(
                filename_
                )[0];
            diagram_.FilePath = filename_;

            if (notifyBack_in != null)
            {
                notifyBack_in("... finished", true);
            }
        }
Пример #2
0
//		#region Methods...
        #region         //public void New(...);
//		public void New(
//			string applicationPath_in,
//string documentationName_in,
//			dNotifyBack notifyBack_in
//		) {
//			if (notifyBack_in != null) notifyBack_in("creating...", true);
//			#region XS_Schema _metadata_temp = new XS_Schema(); ...;
//			XS_Schema _metadata_temp = new XS_Schema();
//			_metadata_temp.DocumentationName = documentationName_in;
//			#endregion
//
//			if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
//			#region string _xmlfile = ...;
//			string _xmlfile = string.Format(
//				"{0}{1}OGenXSD-metadatas{1}MD_{2}.OGenXSD-metadata.xml",
//				/*0*/applicationPath_in,
//				/*1*/System.IO.Path.DirectorySeparatorChar,
//				/*2*/documentationName_in
//			);
//			#endregion
//			_metadata_temp.SaveState_toFile(_xmlfile);
//
//			if (notifyBack_in != null) notifyBack_in("... finished!", true);
//			if (notifyBack_in != null) notifyBack_in("", true);
//
//			Open(
//				_xmlfile,
//				true,
//				notifyBack_in
//			);
//		}
        #endregion
//		#region public void Open(...);
        public void Open(
            string filenameextendedmetadata_in,
            bool force_doNOTsave_in,
            dNotifyBack notifyBack_in
            )
        {
            #region Checking...
            if (this.hasChanges)
            {
                if (!force_doNOTsave_in)
                {
                    throw new Exception(string.Format("{0}.{1}.Open(): - must save before open", this.GetType().Namespace, this.GetType().Name));
                }
            }
            #endregion
            filenameextendedmetadata_ = filenameextendedmetadata_in;

            if (notifyBack_in != null)
            {
                notifyBack_in("opening...", true);
            }
            if (notifyBack_in != null)
            {
                notifyBack_in("- reading metadata from xml files", true);
            }

            rootmetadata_ = XS__RootMetadata.Load_fromFile(
                filenameextendedmetadata_,
                false
                );

            if (notifyBack_in != null)
            {
                notifyBack_in("... finished", true);
            }
        }
Пример #3
0
//		public void New(
//			string applicationPath_in, 
//			string documentationName_in, 
//			dNotifyBack notifyBack_in
//		) {
//			if (notifyBack_in != null) notifyBack_in("creating...", true);
//			#region DocMetadata _metadata_temp = new DocMetadata(); ...;
//			XS__documentation _metadata_temp = new XS__documentation();
//			_metadata_temp.DocumentationName = documentationName_in;
//			#endregion
//
//			if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
//			#region string _xmlfile = ...;
//			string _xmlfile = string.Format(
//				"{0}{1}OGenDoc-metadatas{1}MD_{2}.OGenDoc-metadata.xml", 
//				/*0*/applicationPath_in, 
//				/*1*/System.IO.Path.DirectorySeparatorChar, 
//				/*2*/documentationName_in
//			);
//			#endregion
//			_metadata_temp.SaveState_toFile(_xmlfile);
//
//			if (notifyBack_in != null) notifyBack_in("... finished!", true);
//			if (notifyBack_in != null) notifyBack_in("", true);
//
//			Open(
//				_xmlfile, 
//				true, 
//				notifyBack_in
//			);
//		}
		#endregion
		#region public void Open(...);
		public void Open(
			string filename_in, 
			bool force_doNOTsave_in, 
			dNotifyBack notifyBack_in
		) {
			#region Checking...
			if (this.hasChanges) {
				if (!force_doNOTsave_in) {
					throw new Exception(string.Format(
						"{0}.{1}.Open(): - must save before open", 
						this.GetType().Namespace, 
						this.GetType().Name
					));
				}
			}
			#endregion
			filename_ = filename_in;

			if (notifyBack_in != null) notifyBack_in("opening...", true);
			if (notifyBack_in != null) notifyBack_in("- reading metadata from xml file", true);

			diagram_ = XS__diagram.Load_fromFile(
				filename_
			)[0];
			diagram_.FilePath = filename_;

			if (notifyBack_in != null) notifyBack_in("... finished", true);


			#region more Checking...
			if (notifyBack_in != null) notifyBack_in("checking...", true);

			OGen.lib.datalayer.PostgreSQL.DBUtils_convert_Postgresql _utils_pgsql = new OGen.lib.datalayer.PostgreSQL.DBUtils_convert_Postgresql();
			OGen.lib.datalayer.SQLServer.DBUtils_convert_SQLServer _utils_sqls = new OGen.lib.datalayer.SQLServer.DBUtils_convert_SQLServer();
			Nullable<System.Data.DbType> _dbtype_psql;
			Nullable<System.Data.DbType> _dbtype_sqls;
			bool _isUsingPostgreSQL = false;
			bool _isUsingSQLServer = false;
			DBTableField[] _dbtablefields;
			DBTableField[] _dbtablefields2;
			XS_objectType.FK[] __fks;
			System.Collections.Generic.Dictionary<string, XS_objectType.FK> _fks;
			bool _foundFKTable;
			bool _foundFKField;
			for (int l = 0; l < diagram_.LayerCollection.Count; l++) {
				for (int o = 0; o < diagram_.LayerCollection[l].ObjectCollection.Count; o++) {
					_dbtablefields = diagram_.Table_search(l, o).TableFields();
					diagram_.Table_search(l, o).TableFKs(
						out __fks,
						out _fks
					);

					#region checking for invalid foreign keys
					if (
						_fks.ContainsKey("")
					) {
						throw new Exception(string.Format(
							"invalid foreign key at table: {0}.? -> {1}.?",

							diagram_.Table_search(l, o).TableName,
							_fks[""].FK_TableName
						));
					}
					#endregion

					#region _isUsingPostgreSQL = ...; _isUsingSQLServer = ...;
					for (int f = 0; f < _dbtablefields.Length; f++) {
						if (
							(_dbtablefields[f].PostgreSQLTypeName != null)
							&&
							(_dbtablefields[f].PostgreSQLTypeName.Trim() != "")
						) {
							_isUsingPostgreSQL = true;
						}
						if (
							(_dbtablefields[f].SQLServerTypeName != null)
							&&
							(_dbtablefields[f].SQLServerTypeName.Trim() != "")
						) {
							_isUsingSQLServer = true;
						}
						if (
							_isUsingPostgreSQL
							&&
							_isUsingSQLServer
						) {
							break;
						}
					}
					#endregion

					for (int f = 0; f < _dbtablefields.Length; f++) {
						#region checking if db server type supported
						if (
							!_isUsingPostgreSQL
							&&
							!_isUsingSQLServer
						) {
							throw new Exception(string.Format(
								"no db type defined (should use at least one of the supported db servers: PostgreSQL or SQLServer)",
								_dbtablefields[f].TableName,
								_dbtablefields[f].Name
							));
						}
						#endregion

						#region checking postgresql field type . . .
						_dbtype_psql = null;

						if (
							_isUsingPostgreSQL
						) {
							if (
								(_dbtablefields[f].PostgreSQLTypeName == null)
								||
								(_dbtablefields[f].PostgreSQLTypeName.Trim() == "")
							) {
								throw new Exception(string.Format(
									"invalid table field type - empty postgresql type: {0}.{1}",
									_dbtablefields[f].TableName,
									_dbtablefields[f].Name
								));
							}

							_dbtype_psql = _utils_pgsql.XDbType2DbType(
								_utils_pgsql.XDbType_Parse(
									_dbtablefields[f].PostgreSQLTypeName,
									false
								)
							);
						} 
						#endregion
						#region checking sql server field type . . .
						_dbtype_sqls = null;

						if (
							_isUsingSQLServer
						) {
							if (
								(_dbtablefields[f].SQLServerTypeName == null)
								||
								(_dbtablefields[f].SQLServerTypeName.Trim() == "")
							) {
								throw new Exception(string.Format(
									"invalid table field type - empty sql server type: {0}.{1}",
									_dbtablefields[f].TableName,
									_dbtablefields[f].Name
								));
							}

							_dbtype_sqls = _utils_sqls.XDbType2DbType(
								_utils_sqls.XDbType_Parse(
									_dbtablefields[f].SQLServerTypeName,
									false
								)
							);
						} 
						#endregion

						#region checking if field types match . . .
						if (
							_isUsingPostgreSQL
							&&
							_isUsingSQLServer
						) {
							if (
								(_dbtype_psql == null)
								||
								(_dbtype_sqls == null)
								||
								(
									_dbtype_psql.Value
									!=
									_dbtype_sqls.Value
								)
							) {
								throw new Exception(string.Format(
									"table field types don't match: {0}.{1}",
									_dbtablefields[f].TableName,
									_dbtablefields[f].Name
								));
							}
						} 
						#endregion

						#region //checking FKs . . .
						//if (
						//    (_dbtablefields[f].FK_TableName != null)
						//    &&
						//    (_dbtablefields[f].FK_TableName.Trim() != "")
						//) {
						//    _foundFKTable = false;
						//    _foundFKField = false;
						//    for (int l2 = 0; l2 < diagram_.LayerCollection.Count; l2++) {
						//        for (int o2 = 0; o2 < diagram_.LayerCollection[l2].ObjectCollection.Count; o2++) {
						//            if (
						//                diagram_.Table_search(l2, o2).TableName
						//                ==
						//                _dbtablefields[f].FK_TableName
						//            ) {
						//                _dbtablefields2 = diagram_.Table_search(l2, o2).TableFields();

						//                for (int f2 = 0; f2 < _dbtablefields2.Length; f2++) {
						//                    if (
						//                        _dbtablefields2[f2].Name
						//                        ==
						//                        _dbtablefields[f].FK_FieldName
						//                    ) {

						//                        if (
						//                            _dbtablefields2[f2].PostgreSQLTypeName
						//                            !=
						//                            _dbtablefields[f].PostgreSQLTypeName
						//                        ) {
						//                            throw new Exception(string.Format(
						//                                "foreign key postgresql db type mismatch: {0}.{1}",
						//                                _dbtablefields[f].FK_TableName,
						//                                _dbtablefields[f].FK_FieldName
						//                            ));
						//                        }
						//                        if (
						//                            _dbtablefields2[f2].SQLServerTypeName
						//                            !=
						//                            _dbtablefields[f].SQLServerTypeName
						//                        ) {
						//                            throw new Exception(string.Format(
						//                                "foreign key sql server db type mismatch: {0}.{1}",
						//                                _dbtablefields[f].FK_TableName,
						//                                _dbtablefields[f].FK_FieldName
						//                            ));
						//                        }

						//                        _foundFKField = true;
						//                        break;
						//                    }
						//                }

						//                _foundFKTable = true;
						//                break;
						//            }
						//        }
						//    }

						//    if (!_foundFKTable) {
						//        throw new Exception(string.Format(
						//            "can't find foreign key TABLE: {0}.{1}",
						//            _dbtablefields[f].FK_TableName,
						//            _dbtablefields[f].FK_FieldName
						//        ));
						//    }
						//    if (!_foundFKField) {
						//        throw new Exception(string.Format(
						//            "can't find foreign key FIELD: {0}.{1}",
						//            _dbtablefields[f].FK_TableName,
						//            _dbtablefields[f].FK_FieldName
						//        ));
						//    }
						//}
						#endregion
						#region checking FKs . . .
						if (
							_fks.ContainsKey(
								_dbtablefields[f].Name
							)
						) {
							_foundFKTable = false;
							_foundFKField = false;
							for (int l2 = 0; l2 < diagram_.LayerCollection.Count; l2++) {
							    for (int o2 = 0; o2 < diagram_.LayerCollection[l2].ObjectCollection.Count; o2++) {
									if (
										diagram_.Table_search(l2, o2).TableName
										==
										_fks[_dbtablefields[f].Name].FK_TableName
									) {
										_dbtablefields2 = diagram_.Table_search(l2, o2).TableFields();

										for (int f2 = 0; f2 < _dbtablefields2.Length; f2++) {
											if (
												_dbtablefields2[f2].Name
												==
												_fks[_dbtablefields[f].Name].FK_TableFieldName
											) {

												if (
													(
														(_dbtablefields2[f2].PostgreSQLTypeName == null)
														!=
														(_dbtablefields[f].PostgreSQLTypeName == null)
													)
													||
													(
														//_dbtablefields2[f2].PostgreSQLTypeName
														//!=
														//_dbtablefields[f].PostgreSQLTypeName

														!(
															(_dbtablefields2[f2].PostgreSQLTypeName == _dbtablefields[f].PostgreSQLTypeName)
															||
															(
																(_dbtablefields2[f2].PostgreSQLTypeName == "serial")
																&&
																(_dbtablefields[f].PostgreSQLTypeName == "integer")
															)
															||
															(
																(_dbtablefields[f].PostgreSQLTypeName == "serial")
																&&
																(_dbtablefields2[f2].PostgreSQLTypeName == "integer")
															)
															||
															(
																(_dbtablefields2[f2].PostgreSQLTypeName == "bigserial")
																&&
																(_dbtablefields[f].PostgreSQLTypeName == "bigint")
															)
															||
															(
																(_dbtablefields[f].PostgreSQLTypeName == "bigserial")
																&&
																(_dbtablefields2[f2].PostgreSQLTypeName == "bigint")
															)
														)
													)
												) {
													throw new Exception(string.Format(
														"foreign key postgresql db type mismatch: {0}.{1} -> {2}.{3}",

														diagram_.Table_search(l, o).TableName,
														_dbtablefields[f].Name,

														_fks[_dbtablefields[f].Name].FK_TableName,
														_fks[_dbtablefields[f].Name].FK_TableFieldName
													));
												}
												if (
													(
														(_dbtablefields2[f2].SQLServerTypeName == null)
														!=
														(_dbtablefields[f].SQLServerTypeName == null)
													)
													||
													(
														_dbtablefields2[f2].SQLServerTypeName
														!=
														_dbtablefields[f].SQLServerTypeName
													)
												) {
													throw new Exception(string.Format(
														"foreign key sql server db type mismatch: {0}.{1} -> {2}.{3}",

														diagram_.Table_search(l, o).TableName,
														_dbtablefields[f].Name,

														_fks[_dbtablefields[f].Name].FK_TableName,
														_fks[_dbtablefields[f].Name].FK_TableFieldName
													));
												}

												_foundFKField = true;
												break;
											}
										}

										_foundFKTable = true;
										break;
							        }
							    }
							}

							if (!_foundFKTable) {
								throw new Exception(string.Format(
									"can't find foreign key TABLE: {0}.{1} -> {2}.{3}",

									diagram_.Table_search(l, o).TableName,
									_dbtablefields[f].Name,

									_fks[_dbtablefields[f].Name].FK_TableName,
									_fks[_dbtablefields[f].Name].FK_TableFieldName
								));
							}
							if (!_foundFKField) {
								throw new Exception(string.Format(
									"can't find foreign key FIELD: {0}.{1} -> {2}.{3}",

									diagram_.Table_search(l, o).TableName,
									_dbtablefields[f].Name,

									_fks[_dbtablefields[f].Name].FK_TableName,
									_fks[_dbtablefields[f].Name].FK_TableFieldName
								));
							}
						}
						#endregion
					}
				}
			}

			if (notifyBack_in != null) notifyBack_in("... finished", true);
			#endregion
		}
Пример #4
0
		//#endregion
//		#region public void Open(...);
		public void Open(
			string filename_in, 
			bool force_doNOTsave_in,
			dNotifyBack notifyBack_in
		) {
			#region Checking...
			if (this.hasChanges) {
				if (!force_doNOTsave_in) {
					throw new Exception(string.Format(
						"{0}.{1}.Open(): - must save before open", 
						this.GetType().Namespace, 
						this.GetType().Name
					));
				}
			}
			#endregion
			Filename = filename_in;

			if (notifyBack_in != null) notifyBack_in("opening...", true);
			if (notifyBack_in != null) notifyBack_in("- reading configuration from xml file", true);
			metadata_ = XS__RootMetadata.Load_fromFile(
				Filename,
				false
			);

			#region - reading metadata from business assembly
			string _debug_assembly = Path.Combine(
				ParentDirectoryname,
				businessAssembly(
					metadata_.MetadataExtendedCollection[0].ApplicationName, 
					metadata_.MetadataExtendedCollection[0].ApplicationNamespace, 
					false
				)
			);
			string _release_assembly = Path.Combine(
				ParentDirectoryname,
				businessAssembly(
					metadata_.MetadataExtendedCollection[0].ApplicationName,
					metadata_.MetadataExtendedCollection[0].ApplicationNamespace,
					true
				)
			);
			bool _debug_exits = File.Exists(_debug_assembly);
			bool _release_exits = File.Exists(_release_assembly);
			if (_debug_exits || _release_exits) {
				DateTime _debug_datetime = (_debug_exits) ? File.GetLastWriteTime(_debug_assembly) : DateTime.MinValue;
				DateTime _release_datetime = (_release_exits) ? File.GetLastWriteTime(_release_assembly) : DateTime.MinValue;
				string _assembly 
					= (_debug_datetime > _release_datetime)
						? _debug_assembly
						: _release_assembly;

				if (notifyBack_in != null) notifyBack_in("- reading metadata from business assembly", true);

				OGen.NTier.lib.metadata.metadataBusiness.XS__metadataBusiness _metadatabusiness;
				try {
					_metadatabusiness
						= OGen.NTier.lib.metadata.metadataBusiness.XS__metadataBusiness.Load_fromAssembly(
							_assembly,
							null,
							0
						);
				} catch (Exception _ex) {
					throw new Exception(string.Format(
						"\n---\nfailed to load assembly: {0}\n---\n{1}\n---\n{2}\n---\n{3}\n---", 
						_assembly, 
						_ex.Message, 
						_ex.InnerException,
						_ex.HelpLink
					));
					//_assembly
				}
				_metadatabusiness.ApplicationName = metadata_.MetadataExtendedCollection[0].ApplicationName;

				_metadatabusiness.SaveState_toFile(
					Path.Combine(
						Directoryname,
						string.Format(
							"MD_{0}.OGenXSD-metadataBusiness.xml",
							metadata_.MetadataExtendedCollection[0].ApplicationName
						)
					)
				);

				if (notifyBack_in != null) notifyBack_in("- saving business metadata to xml file", true);
			} else {
				if (notifyBack_in != null) notifyBack_in("- WARNING: no metadata from business assembly to read from", true);
			}
			#endregion

			#region - reading metadata from db
			if (notifyBack_in != null) notifyBack_in("- reading metadata from db", true);
			OGen.NTier.lib.metadata.metadataDB.XS__metadataDB _metadatadb 
				= OGen.NTier.lib.metadata.metadataDB.XS__metadataDB.Load_fromDB(
					null,
					metadata_.MetadataExtendedCollection[0].SubAppName,
					metadata_,
					0,
					metadata_dbconnectionstrings().Convert_toArray()
				);

			// NOTE: this is very important, every parameter / information
			// that's not comming from the database is empty,
			// and needs to be filled in order to be serialized to the xml file:
			_metadatadb.ApplicationName = metadata_.MetadataExtendedCollection[0].ApplicationName;
			for (int ff, tt, t = 0; t < metadata_.MetadataExtendedCollection[0].Tables.TableCollection.Count; t++) {
				for (int f = 0; f < metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection.Count; f++) {
					if (metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection[f].isViewPK) {
						tt = _metadatadb.Tables.TableCollection.Search(
							metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].Name,
							!metadata_.MetadataExtendedCollection[0].DBs.Supports_MySQL
						);
						if (tt < 0) continue;

						ff = _metadatadb.Tables.TableCollection[tt].TableFields.TableFieldCollection.Search(
							metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection[f].Name,
							!metadata_.MetadataExtendedCollection[0].DBs.Supports_MySQL
						);
						if (ff < 0) continue;

						_metadatadb.Tables.TableCollection[
							tt
						].TableFields.TableFieldCollection[
							ff
						].isPK 
							= true;
					}
				}
			}


			for (int i = 0; i < metadata_.MetadataFiles.MetadataFiles.Count; i++) {
				if (
					metadata_.MetadataFiles.MetadataFiles[i].XMLFileType
					==
					OGen.NTier.lib.metadata.metadataDB.XS__metadataDB.METADATADB
				) {
					if (notifyBack_in != null) notifyBack_in("- saving db metadata to xml file", true);

					//--- BUG: using old db information
					//metadata_.MetadataDBCollection[0].SaveState_toFile(
					//    Path.Combine(
					//        Directoryname,
					//        metadata_.MetadataFiles.MetadataFiles[i].XMLFilename
					//    )
					//);

					//--- DEBUG: using new db information
					_metadatadb.SaveState_toFile(
						Path.Combine(
							Directoryname,
							metadata_.MetadataFiles.MetadataFiles[i].XMLFilename
						)
					);
					break;
				}
			}
			#endregion

			if (notifyBack_in != null) notifyBack_in("- re-reading configuration from xml file", true);
			metadata_ = XS__RootMetadata.Load_fromFile(
				Filename,
				false
			);

			if (notifyBack_in != null) notifyBack_in("... finished", true);
		}
Пример #5
0
		//#region public Methods...
		//#region public void New(...);
		public void New(
			string applicationPath_in, 
			string applicationName_in, 
			string namespace_in, 
			OGen.NTier.lib.metadata.metadataExtended.XS_dbType[] dbs_in,
			dNotifyBack notifyBack_in
		) {
throw new Exception("// ToDos: not implemented!");
			//int _justadded;

			//if (notifyBack_in != null) notifyBack_in("creating...", true);
			//#region cDBMetadata _metadata_temp = new cDBMetadata(); ...;
			//cDBMetadata _metadata_temp = new cDBMetadata();
			//_metadata_temp.ApplicationName = applicationName_in;
			//_metadata_temp.Namespace = namespace_in;
			//_metadata_temp.DBs.Clear();
			//for (int d = 0; d < dbs_in.Length; d++) {
			//    _justadded = _metadata_temp.DBs.Add(
			//        dbs_in[d].DBServerType, 
			//        false
			//    );
			//    _metadata_temp.DBs[_justadded].CopyFrom(
			//        dbs_in[d]
			//    );

			//    //if (d == 0) {
			//    //    // ToDos: here! document this behaviour and describe it throught unit testing
			//    //    // first item in the array, represents default db connection
			//    //    _metadata_temp.Default_DBServerType = _metadata_temp.DBs[_justadded].DBServerType;
			//    //    _metadata_temp.Default_ConfigMode = _metadata_temp.DBs[_justadded].Connections[0].ConfigMode;
			//    //}
			//}
			//_metadata_temp.GUIDDatalayer = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDatalayer_proxy = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDatalayer_UTs = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDBusinesslayer = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDBusinesslayer_proxy = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDBusinesslayer_UTs = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDBusiness_client = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDistributedlayer_webservices_server = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDistributedlayer_webservices_client = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDistributedlayer_remoting_server = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDDistributedlayer_remoting_client = System.Guid.NewGuid().ToString("D").ToUpper();
			//_metadata_temp.GUIDTest = System.Guid.NewGuid().ToString("D").ToUpper();
			//#endregion

			//if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
			//#region string _xmlfile = ...;
			//string _xmlfile = string.Format(
			//    //"{0}{1}OGen-metadatas{1}MD_{2}-{3}.OGen-metadata.xml", 
			//    "{0}{1}OGen-metadatas{1}MD_{2}.OGen-metadata.xml", 
			//    /*0*/applicationPath_in, 
			//    /*1*/System.IO.Path.DirectorySeparatorChar, 
			//    /*2*/applicationName_in

			//    // first item in the array, represents default db connection
			//    ///*3*/, dbs_in[0].DBServerType.ToString()
			//);
			//#endregion
			//_metadata_temp.SaveState_toFile(_xmlfile);

			//if (notifyBack_in != null) notifyBack_in("... finished!", true);
			//if (notifyBack_in != null) notifyBack_in("", true);

			//Open(_xmlfile, true, notifyBack_in);
		}
Пример #6
0
//		#region Methods...
		#region //public void New(...);
//		public void New(
//			string applicationPath_in, 
//string documentationName_in, 
//			dNotifyBack notifyBack_in
//		) {
//			if (notifyBack_in != null) notifyBack_in("creating...", true);
//			#region XS_Schema _metadata_temp = new XS_Schema(); ...;
//			XS_Schema _metadata_temp = new XS_Schema();
//			_metadata_temp.DocumentationName = documentationName_in;
//			#endregion
//
//			if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
//			#region string _xmlfile = ...;
//			string _xmlfile = string.Format(
//				"{0}{1}OGenXSD-metadatas{1}MD_{2}.OGenXSD-metadata.xml", 
//				/*0*/applicationPath_in, 
//				/*1*/System.IO.Path.DirectorySeparatorChar, 
//				/*2*/documentationName_in
//			);
//			#endregion
//			_metadata_temp.SaveState_toFile(_xmlfile);
//
//			if (notifyBack_in != null) notifyBack_in("... finished!", true);
//			if (notifyBack_in != null) notifyBack_in("", true);
//
//			Open(
//				_xmlfile, 
//				true, 
//				notifyBack_in
//			);
//		}
		#endregion
//		#region public void Open(...);
		public void Open(
			string filenameextendedmetadata_in,
			bool force_doNOTsave_in, 
			dNotifyBack notifyBack_in
		) {
			#region Checking...
			if (this.hasChanges) {
				if (!force_doNOTsave_in) {
					throw new Exception(string.Format("{0}.{1}.Open(): - must save before open", this.GetType().Namespace, this.GetType().Name));
				}
			}
			#endregion
			filenameextendedmetadata_ = filenameextendedmetadata_in;

			if (notifyBack_in != null) notifyBack_in("opening...", true);
			if (notifyBack_in != null) notifyBack_in("- reading metadata from xml files", true);

			rootmetadata_ = RootMetadata.Load_fromFile(
				filenameextendedmetadata_,
				false
			);

			if (notifyBack_in != null) notifyBack_in("... finished", true);
		}
Пример #7
0
        //#endregion
//		#region public void Open(...);
        public void Open(
            string filename_in,
            bool force_doNOTsave_in,
            dNotifyBack notifyBack_in
            )
        {
            #region Checking...
            if (this.hasChanges)
            {
                if (!force_doNOTsave_in)
                {
                    throw new Exception(string.Format(
                                            "{0}.{1}.Open(): - must save before open",
                                            this.GetType().Namespace,
                                            this.GetType().Name
                                            ));
                }
            }
            #endregion
            Filename = filename_in;

            if (notifyBack_in != null)
            {
                notifyBack_in("opening...", true);
            }
            if (notifyBack_in != null)
            {
                notifyBack_in("- reading configuration from xml file", true);
            }
            metadata_ = XS__RootMetadata.Load_fromFile(
                Filename,
                false
                );

            #region - reading metadata from business assembly
            string _debug_assembly = Path.Combine(
                ParentDirectoryname,
                businessAssembly(
                    metadata_.MetadataExtendedCollection[0].ApplicationName,
                    metadata_.MetadataExtendedCollection[0].ApplicationNamespace,
                    false
                    )
                );
            string _release_assembly = Path.Combine(
                ParentDirectoryname,
                businessAssembly(
                    metadata_.MetadataExtendedCollection[0].ApplicationName,
                    metadata_.MetadataExtendedCollection[0].ApplicationNamespace,
                    true
                    )
                );
            bool _debug_exits   = File.Exists(_debug_assembly);
            bool _release_exits = File.Exists(_release_assembly);
            if (_debug_exits || _release_exits)
            {
                DateTime _debug_datetime   = (_debug_exits) ? File.GetLastWriteTime(_debug_assembly) : DateTime.MinValue;
                DateTime _release_datetime = (_release_exits) ? File.GetLastWriteTime(_release_assembly) : DateTime.MinValue;
                string   _assembly
                    = (_debug_datetime > _release_datetime)
                                                ? _debug_assembly
                                                : _release_assembly;

                if (notifyBack_in != null)
                {
                    notifyBack_in("- reading metadata from business assembly", true);
                }

                OGen.NTier.lib.metadata.metadataBusiness.XS__metadataBusiness _metadatabusiness;
                try {
                    _metadatabusiness
                        = OGen.NTier.lib.metadata.metadataBusiness.XS__metadataBusiness.Load_fromAssembly(
                              _assembly,
                              null,
                              0
                              );
                } catch (Exception _ex) {
                    throw new Exception(string.Format(
                                            "\n---\nfailed to load assembly: {0}\n---\n{1}\n---\n{2}\n---\n{3}\n---",
                                            _assembly,
                                            _ex.Message,
                                            _ex.InnerException,
                                            _ex.HelpLink
                                            ));
                    //_assembly
                }
                _metadatabusiness.ApplicationName = metadata_.MetadataExtendedCollection[0].ApplicationName;

                _metadatabusiness.SaveState_toFile(
                    Path.Combine(
                        Directoryname,
                        string.Format(
                            "MD_{0}.OGenXSD-metadataBusiness.xml",
                            metadata_.MetadataExtendedCollection[0].ApplicationName
                            )
                        )
                    );

                if (notifyBack_in != null)
                {
                    notifyBack_in("- saving business metadata to xml file", true);
                }
            }
            else
            {
                if (notifyBack_in != null)
                {
                    notifyBack_in("- WARNING: no metadata from business assembly to read from", true);
                }
            }
            #endregion

            #region - reading metadata from db
            if (notifyBack_in != null)
            {
                notifyBack_in("- reading metadata from db", true);
            }
            OGen.NTier.lib.metadata.metadataDB.XS__metadataDB _metadatadb
                = OGen.NTier.lib.metadata.metadataDB.XS__metadataDB.Load_fromDB(
                      null,
                      metadata_.MetadataExtendedCollection[0].SubAppName,
                      metadata_,
                      0,
                      metadata_dbconnectionstrings().Convert_toArray()
                      );

            // NOTE: this is very important, every parameter / information
            // that's not comming from the database is empty,
            // and needs to be filled in order to be serialized to the xml file:
            _metadatadb.ApplicationName = metadata_.MetadataExtendedCollection[0].ApplicationName;
            for (int ff, tt, t = 0; t < metadata_.MetadataExtendedCollection[0].Tables.TableCollection.Count; t++)
            {
                for (int f = 0; f < metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection.Count; f++)
                {
                    if (metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection[f].isViewPK)
                    {
                        tt = _metadatadb.Tables.TableCollection.Search(
                            metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].Name,
                            !metadata_.MetadataExtendedCollection[0].DBs.Supports_MySQL
                            );
                        if (tt < 0)
                        {
                            continue;
                        }

                        ff = _metadatadb.Tables.TableCollection[tt].TableFields.TableFieldCollection.Search(
                            metadata_.MetadataExtendedCollection[0].Tables.TableCollection[t].TableFields.TableFieldCollection[f].Name,
                            !metadata_.MetadataExtendedCollection[0].DBs.Supports_MySQL
                            );
                        if (ff < 0)
                        {
                            continue;
                        }

                        _metadatadb.Tables.TableCollection[
                            tt
                        ].TableFields.TableFieldCollection[
                            ff
                        ].isPK
                            = true;
                    }
                }
            }


            for (int i = 0; i < metadata_.MetadataFiles.MetadataFiles.Count; i++)
            {
                if (
                    metadata_.MetadataFiles.MetadataFiles[i].XMLFileType
                    ==
                    OGen.NTier.lib.metadata.metadataDB.XS__metadataDB.METADATADB
                    )
                {
                    if (notifyBack_in != null)
                    {
                        notifyBack_in("- saving db metadata to xml file", true);
                    }

                    //--- BUG: using old db information
                    //metadata_.MetadataDBCollection[0].SaveState_toFile(
                    //    Path.Combine(
                    //        Directoryname,
                    //        metadata_.MetadataFiles.MetadataFiles[i].XMLFilename
                    //    )
                    //);

                    //--- DEBUG: using new db information
                    _metadatadb.SaveState_toFile(
                        Path.Combine(
                            Directoryname,
                            metadata_.MetadataFiles.MetadataFiles[i].XMLFilename
                            )
                        );
                    break;
                }
            }
            #endregion

            if (notifyBack_in != null)
            {
                notifyBack_in("- re-reading configuration from xml file", true);
            }
            metadata_ = XS__RootMetadata.Load_fromFile(
                Filename,
                false
                );

            if (notifyBack_in != null)
            {
                notifyBack_in("... finished", true);
            }
        }
Пример #8
0
        //#region public Methods...
        //#region public void New(...);
        public void New(
            string applicationPath_in,
            string applicationName_in,
            string namespace_in,
            OGen.NTier.lib.metadata.metadataExtended.XS_dbType[] dbs_in,
            dNotifyBack notifyBack_in
            )
        {
            throw new Exception("// ToDos: not implemented!");
            //int _justadded;

            //if (notifyBack_in != null) notifyBack_in("creating...", true);
            //#region cDBMetadata _metadata_temp = new cDBMetadata(); ...;
            //cDBMetadata _metadata_temp = new cDBMetadata();
            //_metadata_temp.ApplicationName = applicationName_in;
            //_metadata_temp.Namespace = namespace_in;
            //_metadata_temp.DBs.Clear();
            //for (int d = 0; d < dbs_in.Length; d++) {
            //    _justadded = _metadata_temp.DBs.Add(
            //        dbs_in[d].DBServerType,
            //        false
            //    );
            //    _metadata_temp.DBs[_justadded].CopyFrom(
            //        dbs_in[d]
            //    );

            //    //if (d == 0) {
            //    //    // ToDos: here! document this behaviour and describe it throught unit testing
            //    //    // first item in the array, represents default db connection
            //    //    _metadata_temp.Default_DBServerType = _metadata_temp.DBs[_justadded].DBServerType;
            //    //    _metadata_temp.Default_ConfigMode = _metadata_temp.DBs[_justadded].Connections[0].ConfigMode;
            //    //}
            //}
            //_metadata_temp.GUIDDatalayer = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDatalayer_proxy = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDatalayer_UTs = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDBusinesslayer = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDBusinesslayer_proxy = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDBusinesslayer_UTs = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDBusiness_client = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDistributedlayer_webservices_server = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDistributedlayer_webservices_client = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDistributedlayer_remoting_server = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDDistributedlayer_remoting_client = System.Guid.NewGuid().ToString("D").ToUpper();
            //_metadata_temp.GUIDTest = System.Guid.NewGuid().ToString("D").ToUpper();
            //#endregion

            //if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
            //#region string _xmlfile = ...;
            //string _xmlfile = string.Format(
            //    //"{0}{1}OGen-metadatas{1}MD_{2}-{3}.OGen-metadata.xml",
            //    "{0}{1}OGen-metadatas{1}MD_{2}.OGen-metadata.xml",
            //    /*0*/applicationPath_in,
            //    /*1*/System.IO.Path.DirectorySeparatorChar,
            //    /*2*/applicationName_in

            //    // first item in the array, represents default db connection
            //    ///*3*/, dbs_in[0].DBServerType.ToString()
            //);
            //#endregion
            //_metadata_temp.SaveState_toFile(_xmlfile);

            //if (notifyBack_in != null) notifyBack_in("... finished!", true);
            //if (notifyBack_in != null) notifyBack_in("", true);

            //Open(_xmlfile, true, notifyBack_in);
        }
Пример #9
0
//		public void New(
//			string applicationPath_in, 
//			string documentationName_in, 
//			dNotifyBack notifyBack_in
//		) {
//			if (notifyBack_in != null) notifyBack_in("creating...", true);
//			#region DocMetadata _metadata_temp = new DocMetadata(); ...;
//			XS__documentation _metadata_temp = new XS__documentation();
//			_metadata_temp.DocumentationName = documentationName_in;
//			#endregion
//
//			if (notifyBack_in != null) notifyBack_in("- generating xml file", true);
//			#region string _xmlfile = ...;
//			string _xmlfile = string.Format(
//				"{0}{1}OGenDoc-metadatas{1}MD_{2}.OGenDoc-metadata.xml", 
//				/*0*/applicationPath_in, 
//				/*1*/System.IO.Path.DirectorySeparatorChar, 
//				/*2*/documentationName_in
//			);
//			#endregion
//			_metadata_temp.SaveState_toFile(_xmlfile);
//
//			if (notifyBack_in != null) notifyBack_in("... finished!", true);
//			if (notifyBack_in != null) notifyBack_in("", true);
//
//			Open(
//				_xmlfile, 
//				true, 
//				notifyBack_in
//			);
//		}
		#endregion
		#region public void Open(...);
		public void Open(
			string filename_in, 
			bool force_doNOTsave_in, 
			dNotifyBack notifyBack_in
		) {
			#region Checking...
			if (this.hasChanges) {
				if (!force_doNOTsave_in) {
					throw new Exception(string.Format(
						"{0}.{1}.Open(): - must save before open", 
						this.GetType().Namespace, 
						this.GetType().Name
					));
				}
			}
			#endregion
			filename_ = filename_in;

			if (notifyBack_in != null) notifyBack_in("opening...", true);
			if (notifyBack_in != null) notifyBack_in("- reading metadata from xml file", true);

			diagram_ = XS__diagram.Load_fromFile(
				filename_
			)[0];
			diagram_.FilePath = filename_;

			if (notifyBack_in != null) notifyBack_in("... finished", true);
		}