Ejemplo n.º 1
1
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }