Пример #1
0
        public static bool ModifyGroup(IBaseWindow baseWin, ref GDMGroupRecord groupRec)
        {
            bool result;

            try {
                baseWin.Context.BeginUpdate();
                GDMTree tree = baseWin.Context.Tree;

                using (var dlg = AppHost.ResolveDialog <IGroupEditDlg>(baseWin)) {
                    bool exists = groupRec != null;
                    if (!exists)
                    {
                        groupRec = new GDMGroupRecord(tree);
                        groupRec.InitNew();
                    }

                    try {
                        baseWin.Context.LockRecord(groupRec);

                        dlg.Group = groupRec;
                        result    = (AppHost.Instance.ShowModalX(dlg, false));
                    } finally {
                        baseWin.Context.UnlockRecord(groupRec);
                    }

                    if (!exists)
                    {
                        if (result)
                        {
                            tree.AddRecord(groupRec);
                        }
                        else
                        {
                            groupRec.Dispose();
                            groupRec = null;
                        }
                    }
                }
            } finally {
                baseWin.Context.EndUpdate();
            }

            return(result);
        }