public void UpdatePariProj() { log.Info("\nUpdatePariProj"); try { var doc = Application.DocumentManager.MdiActiveDocument; var editor = doc.Editor; var lg = new Logger(editor, log); lg.Info("Starte Update..."); var factory = new Factory(); IPariDatabase database = factory.CreatePariDatabase(); if (!CheckTableValidity(database)) { return; } var blockReader = new BlockReader(); blockReader.ReadBlocksFromModelspace(); var blockInfos = blockReader.BlockInfos; var wohnungInfos = blockReader.WohnungInfos; if (CheckBlockWohnungConsistencyAskUser(blockInfos, wohnungInfos)) { return; } var projektInfo = blockReader.ProjektInfo; if (projektInfo == null) { var msg = string.Format(CultureInfo.CurrentCulture, "Der ProjektInfo-Block existiert nicht in der Zeichnung!"); log.Error(msg); Application.ShowAlertDialog(msg); return; } lg.Info(string.Format(CultureInfo.CurrentCulture, "Projekt-ID: {0}", database.GetProjektId(projektInfo))); var tableUpdater = new TableUpdater(); tableUpdater.Update(blockInfos, wohnungInfos, projektInfo, database); tableUpdater.LogStatus(lg); if (CheckInvalidCategoriesAskUser(tableUpdater)) { return; } database.UpdateDatabase(tableUpdater, projektInfo); lg.Info("\n\nUpdatebeendet."); } catch (Exception ex) { log.Error(ex.Message, ex); Application.ShowAlertDialog(ex.Message); } }
private static int GetProjektId(IProjektInfo projektInfo, IPariDatabase database) { var projektId = database.GetProjektId(projektInfo); if (projektId < 0) { var msg = string.Format(CultureInfo.CurrentCulture, "Das Projekt '{0}' existiert nicht!", projektInfo.Bauvorhaben); Log.Error(msg); throw new InvalidOperationException(msg); } return(projektId); }
public void ExportPari() { log.Info("ExportPari"); try { var factory = new Factory(); IPariDatabase database = factory.CreatePariDatabase(); if (!CheckTableValidity(database)) { return; } var blockReader = new BlockReader(); blockReader.ReadBlocksFromModelspace(); var blockInfos = blockReader.BlockInfos; var wohnungInfos = blockReader.WohnungInfos; var projektInfo = blockReader.ProjektInfo; if (projektInfo == null) { var msg = string.Format(CultureInfo.CurrentCulture, "Der ProjektInfo-Block existiert nicht in der Zeichnung!"); log.Error(msg); Application.ShowAlertDialog(msg); return; } var dwgName = Application.GetSystemVariable("DwgName").ToString(); var dwgPrefix = Application.GetSystemVariable("DwgPrefix").ToString(); projektInfo.DwgName = dwgName; projektInfo.DwgPrefix = dwgPrefix; var projektId = database.GetProjektId(projektInfo); if (projektId >= 0) { var msg = string.Format(CultureInfo.CurrentCulture, "Das Projekt '{0}' existiert bereits! ProjektId = {1}.", projektInfo.Bauvorhaben, projektId); log.Error(msg); Application.ShowAlertDialog(msg); return; } var tableBuilder = new TableBuilder(); tableBuilder.Build(blockInfos, wohnungInfos); if (CheckInvalidCategoriesAskUser(tableBuilder)) { return; } var doc = Application.DocumentManager.MdiActiveDocument; var editor = doc.Editor; database.SaveToDatabase(tableBuilder, projektInfo); var raumWithoutTop = tableBuilder.RaumTable.Where(x => string.IsNullOrEmpty(x.Top)).ToList(); if (raumWithoutTop.Count > 0) { editor.WriteMessage("\nFolgende Räume haben keine TOP-Information: "); editor.WriteMessage("\n-----------------------------------------------------------------"); foreach (var ri in raumWithoutTop) { var msg = string.Format(CultureInfo.CurrentCulture, "\nRaum: {0}\tGeschoss: {1}\tNutzwert: {2}\tHandle: {3}", ri.Raum, ri.Lage, ri.RNW, ri.AcadHandle); log.Warn(msg); editor.WriteMessage(msg); } } editor.WriteMessage("\n\nExport beendet."); } catch (Exception ex) { log.Error(ex.Message, ex); Application.ShowAlertDialog(ex.Message); } }