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); } }
public void AddFieldsTest() { var factory = new Factory(); IPariDatabase database = factory.CreatePariDatabase(); var nrOfFields = database.CheckExistingFields(); }
public void CheckConsistency_No_Exception() { var factory = new Factory(); IPariDatabase database = factory.CreatePariDatabase(); database.CheckConsistency(); }
private static bool CheckTableValidity(IPariDatabase database) { List <string> tableNames; try { tableNames = database.GetTableNames(); } catch (Exception ex) { var msg = string.Format(CultureInfo.CurrentCulture, "Fehler beim Lesen der Datenbank! {0}", ex.Message); log.Error(msg); Application.ShowAlertDialog(msg); return(false); } if (!tableNames.Contains("Projekt") || !tableNames.Contains("Raum") || !tableNames.Contains("Kategorie") || !tableNames.Contains("GstInfo") || !tableNames.Contains("Wohnung")) { var msg = string.Format(CultureInfo.CurrentCulture, "Die Datenbank ist ungültig!"); log.Error(msg); Application.ShowAlertDialog(msg); return(false); } return(true); }
private void GetKategoriesFromDatabase(IPariDatabase database, int projektId) { var dbKats = database.GetKategories(projektId); foreach (var kat in dbKats) { _dbKatDict[kat.Identification] = kat; } DelKats = dbKats.Select(x => x).ToList(); }
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 ExcelizerNF(IPariDatabase database, string locationHint) { _Database = database; _TargetFile = locationHint; _TemplateFile = Path.Combine(Settings.Default.TemplateLocation, TEMPLATE_FILENAME); log.Debug(string.Format(CultureInfo.InvariantCulture, "Settings.TemplateLocation: '{0}'", _TemplateFile)); if (!File.Exists(_TemplateFile)) { if (!File.Exists(_TemplateFile)) { throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "File '{0}' doesn't exist!", _TemplateFile)); } } }
public ExcelizerNW(IPariDatabase database, string locationHint) { this._Database = database; this._TargetFile = locationHint; _TemplateFile = Path.Combine(Settings.Default.TemplateLocation, TEMPLATE_FILENAME); log.Debug(string.Format(CultureInfo.InvariantCulture, "Settings.TemplateLocation: '{0}'", _TemplateFile)); if (!File.Exists(_TemplateFile)) { //var sourceDirName = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); //_TemplateNWFile = Path.Combine(sourceDirName, TEMPLATE_NW_FILENAME); if (!File.Exists(_TemplateFile)) { throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "File '{0}' doesn't exist!", _TemplateFile)); } } }
public ChangeDataUc() { InitializeComponent(); log.Debug("New ChangeDataUc Window."); try { _Factory = new Factory(); _Database = _Factory.CreatePariDatabase(); var zav = _Database.GetZuAbschlagVorgaben(); _ZAV.Add(new ZuAbschlagVorgabe() { Beschreibung = "", Prozent = 0.0 }); foreach (var z in zav) { _ZAV.Add(new ZuAbschlagVorgabe() { Beschreibung = z.Beschreibung, Prozent = z.Prozent }); } cmbZaVorgaben.DataContext = this; TheZav = _ZAV[0]; var projInfos = _Database.ListProjInfos(); _ProjektInfoContainer = new ProjektInfoContainer(projInfos); ProjektCombo.DataContext = _ProjektInfoContainer; _ProjektInfoContainer.PropertyChanged += ProjektInfoContainer_PropertyChanged; dgKategorien.ItemsSource = _Kategories; dgKategorien.RowEditEnding += dgKategorien_RowEditEnding; dgKategorien.SelectionChanged += dgKategorien_SelectionChanged; dgZuAbschlag.ItemsSource = _ZuAbschlags; dgZuAbschlag.RowEditEnding += dgZuAbschlag_RowEditEnding; dgZuAbschlag.CellEditEnding += dgZuAbschlag_CellEditEnding; _ZuAbschlags.CollectionChanged += _ZuAbschlags_CollectionChanged; } catch (Exception ex) { MessageBox.Show(ex.Message, Properties.Resources.MsgBoxTitle); log.Error(ex.Message, ex); } }
public void ExportNF(IPariDatabase database, string locationHint, int projektId) { if (database == null) { throw new ArgumentNullException("database"); } if (locationHint != null) { if (File.Exists(locationHint)) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "File '{0}' already exist!", locationHint), "locationHint"); } } using (var excelizer = new ExcelizerNF(database, locationHint)) { excelizer.ExportNf(projektId); } }
public void Update(List <IBlockInfo> blockInfos, List <IWohnungInfo> wohnungInfos, IProjektInfo projektInfo, IPariDatabase database) { ClearAll(); var projektId = GetProjektId(projektInfo, database); GetWohnungRecords(wohnungInfos, projektId); // Kategorien aus Datenbank GetKategoriesFromDatabase(database, projektId); // AutoCAD-Blockinfo var blockInfoDict = new Dictionary <string, IBlockInfo>(); foreach (var blockInfo in blockInfos) { blockInfoDict[blockInfo.Handle] = blockInfo; } // Räume aus Datenkbank var dbRaume = database.GetRaeume(projektId); // Ermitteln der zu löschenden Räume foreach (var raumRecord in dbRaume) { _raumDict[raumRecord.AcadHandle] = raumRecord; if (!blockInfoDict.ContainsKey(raumRecord.AcadHandle)) { DelRaume.Add(raumRecord); } } // updRaume und newRaume foreach (var blockInfo in blockInfos) { IRaumRecord raumRecord; if (_raumDict.TryGetValue(blockInfo.Handle, out raumRecord)) { UpdRaume.Add(raumRecord); var rr2 = raumRecord.ShallowCopy(); raumRecord.UpdateValuesFrom(blockInfo); if (!raumRecord.IsEqualTo(rr2)) { ChangedRaumRecords.Add(raumRecord); NrOfChangedRaumRecords++; } } else { raumRecord = _factory.CreateRaumRecord(); raumRecord.ProjektId = projektId; NewRaume.Add(raumRecord); raumRecord.UpdateValuesFrom(blockInfo); } IKategorieRecord kat; if (!_dbKatDict.TryGetValue(raumRecord.KatIdentification, out kat)) { kat = _factory.CreateKategorie(raumRecord); kat.ProjektId = projektId; NewKats.Add(kat); raumRecord.Kategorie = kat; _dbKatDict.Add(raumRecord.KatIdentification, kat); } else { if (!CompareNutzwert(raumRecord.Nutzwert, kat.Nutzwert)) { // create kat because of rnw-handling var tmpkat = _factory.CreateKategorie(raumRecord); kat.RNW = tmpkat.RNW; kat.Nutzwert = tmpkat.Nutzwert; UpdKats.Add(kat); } DelKats.Remove(kat); } raumRecord.Kategorie = kat; } CheckNutzwertPerKatOk(); }
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); } }