Example #1
0
		private void WriteAssemblyFile()
		{
			var fi = new FileInfo(Path.Combine(new FileInfo(CodeBundle.ProjectFilePath).DirectoryName, "Properties", "AssemblyInfo.cs"));

			if (!fi.Exists)
				return;

			var newcontent = "//START csdb.dbserver3\r\n" + CodeBundle.Databases.Select(x =>
			{
				string prefix = $"{CodeBundle.Architecture.Name}.{x.DataSet.Name}";
				string name = $"{x.DataSet.Name.ToLowerName()}Db";

				string[] namespaces = {x.DataSetNameSpace, x.TablesNameSpace, x.RowsNameSpace, x.Views.Length==0?null:x.ViewsNameSpace, x.RowInterfacesNameSpace, x.PocoRowsNameSpace};

				return $"[assembly: XmlnsPrefix(\"{prefix}\", \"{name}\")]" + "\r\n" + namespaces.Where(x1=>x1!=null).Select(ns => $"[assembly: XmlnsDefinition(\"{prefix}\", \"{ns}\")]").Join("\r\n");
			}).Join("\r\n\r\n") + "\r\n//END csdb.dbserver3";

			

			var content = fi.LoadAs_UnicodeString();
			var match = GetCsDbRegionRegex.Match(content);

			if (match.Success)
			{
				content  = GetCsDbRegionRegex.Replace(content, newcontent);
			}
			else
			{
				content = content + "\r\n\r\n" + newcontent;
			}

			fi.DeleteFile_IfExists();
			content.SaveAs_UnicodeString(fi);
		}
Example #2
0
		private void WriteProjectFile()
		{
			CsDb.CodeGen.Tracing.Trace($"Writing project file: changed files: {GeneratedFiles.Count}", 1);
			var fi = new FileInfo(CodeBundle.ProjectFilePath);
			if (!fi.Exists)
				throw new InvalidOperationException("Project have to exist in order to save it");

			var doc = XDocument.Load(fi.FullName);
			var project = doc.Root;
			var ns = project.GetDefaultNamespace();

			var existingGroups = project.Descendants().Where(x => x.Name.LocalName == "ItemGroup");
			var insertTarget = existingGroups.Last();


			var oldItems = existingGroups.SelectMany(gr => gr.Descendants().Where(x => x.Attribute("Label") != null && x.Attribute("Label").Value == $"CsWpfBase.Db.codegen.[{CodeBundle.Architecture.Name}]")).ToArray();
			var newItems = GeneratedFiles.Select(x => x.Replace(fi.Directory.FullName + "\\", "")).ToArray();

			var filesToDelete = oldItems.Select(x => x.Attribute(XName.Get("Include")).Value).Except(newItems).ToArray();


			foreach (var item in oldItems)
			{
				item.Remove();
			}


			foreach (var s in _generatedFiles)
			{
				var relativeFile = s.Replace(fi.Directory.FullName + "\\", "");
				var node = new XElement(ns + "Compile");
				node.SetAttributeValue("Include", relativeFile);
				node.SetAttributeValue("Label", $"CsWpfBase.Db.codegen.[{CodeBundle.Architecture.Name}]");
				insertTarget.Add(node);
			}


			using (var xmlWriter = new XmlTextWriter(fi.FullName, Encoding.UTF8) { Formatting = Formatting.Indented, IndentChar = ' ', Indentation = 2 })
			{
				doc.Save(xmlWriter);
				xmlWriter.Close();
			}


			foreach (var relativePath in filesToDelete)
			{
				var fileInfo = new FileInfo(Path.Combine(fi.Directory.FullName, relativePath));
				fileInfo.DeleteFile_IfExists();
			}
		}
Example #3
0
		public void CheckOldToNewConverter(String protokollFileName = null)
			{
			Data.DbServer3.AltErlaaInfo.LoadAll_IfHasNotBeenLoaded();
			Data.DbServer3.AltErlaaInfo.Timings.LoadAllTimings();
			Data.DbServer3.WPMedia.LoadAll_IfHasNotBeenLoaded();
			Data.DbServer3.WPMedia.Timings.Load_TimingsAfter();
			Data.DbServer3.WPMediaAddOnData.LoadAll_IfHasNotBeenLoaded();
			Data.DbServer3.WPMediaAddOnData.Timings.LoadAllTimings();
			Data.DbServer3.MultiMedia.LoadAll_IfHasNotBeenLoaded();
			Data.DbServer3.MultiMedia.MMUnitTimings.LoadAllTimings();
			Data.DbServer3.MultiMedia.MMUnits.Load_All_ShortData();
			Dictionary<Guid, List<TabellenBasics>> allWPMediaAddOnData
				= Data.DbServer3.WPMediaAddOnData.GetAllWPMediaAddOnData();
			Dictionary<Guid, Dictionary<DateTime, int>> allWPMediaAddOnDataWithDuplicateModifyTimeStamps
				= Data.DbServer3.WPMediaAddOnData.GetAllWPMediaAddOnDataWithDuplicateModifyTimeStamps();
			StreamWriter protokollFile = null;
			StreamWriter dataFile = null;
			if (!String.IsNullOrEmpty(protokollFileName))
				{
				FileInfo fileInfo = new FileInfo(protokollFileName);
				fileInfo.CreateDirectory_IfNotExists();
				fileInfo.DeleteFile_IfExists();
				protokollFile = new StreamWriter(protokollFileName);
				FileInfo dataFileInfo = new FileInfo(protokollFileName.Replace(".log", ".data"));
				dataFileInfo.CreateDirectory_IfNotExists();
				dataFileInfo.DeleteFile_IfExists();
				dataFile = new StreamWriter(dataFileInfo.FullName);
				protokollFile.WriteLine($"StartZeit = {DateTime.Now}");
				dataFile.WriteLine($"StartZeit = {DateTime.Now}");
				}

			CheckProcessConnectorenToWPMediaAddOnAnBeitraege(allWPMediaAddOnData, protokollFile, dataFile);
			CheckWPMediaAddOnAnBeitraegetoProcessConnectoren(allWPMediaAddOnData, protokollFile, dataFile);

			/*
						CheckWPMediaAddOnDataTimings(allWPMediaAddOnData, protokollFile, dataFile);
						CheckWPMediaAddOnData(allWPMediaAddOnData, allWPMediaAddOnDataWithDuplicateModifyTimeStamps,
							protokollFile, dataFile);
						CheckWPMedia(protokollFile, dataFile);
						CheckMMUnits(protokollFile, dataFile);
			*/
			if (protokollFile != null)
				{
				protokollFile.WriteLine($"EndZeit = {DateTime.Now}");
				dataFile.WriteLine($"EndZeit = {DateTime.Now}");
				protokollFile.Close();
				dataFile.Close();
				}
			}