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); }
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(); } }
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(); } }