Beispiel #1
0
        public bool AddTemplate(IObjectTemplate template)
        {
            try
            {
                IObjectTemplate objectTemplate = _templates.FirstOrDefault(c => c.Name == template.Name);
                if (objectTemplate == null)
                {
                    MessageService.Current.Warn("该模板已经存在,请更换名字!");
                    return(false);
                }

                if (_workspace == null)
                {
                    Connect();
                }

                ITable         pTable   = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
                IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit;
                pWksEdit.StartEditing(true);
                pWksEdit.StartEditOperation();
                IRow pRow = pTable.CreateRow();
                template.UpdateRow(pRow);

                //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD");
                //int tmpIndex = pTable.FindField("TemplateName");
                //foreach (IYTField ytField in template.Fields)
                //{
                //    pRow = pTable.CreateRow();
                //    pRow.set_Value(tmpIndex,template.Name);
                //    ytField.UpdateRow(pRow);
                //}
                pWksEdit.StopEditOperation();
                pWksEdit.StopEditing(true);
                _templates.Add(template);
                ComReleaser.ReleaseCOMObject(pTable);
                DisConnect();

                return(true);
            }
            catch (Exception ex)
            {
                MessageService.Current.Warn("系统发生错误:" + ex.Message);
                return(false);

                throw;
            }
        }
Beispiel #2
0
        public bool SaveTemplate(IObjectTemplate template)
        {
            try
            {
                if (_workspace == null)
                {
                    Connect();
                }

                ITable         pTable   = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
                IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit;
                pWksEdit.StartEditing(true);
                pWksEdit.StartEditOperation();

                IRow pRow;
                int  oldID = template.ID;
                if (oldID > 0)
                {
                    pRow = pTable.GetRow(template.ID);
                }
                else
                {
                    pRow = pTable.CreateRow();
                }
                template.UpdateRow(pRow);



                //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD");
                //if (oldID > 0)
                //{
                //    //删除数据库中原有的字段定义
                //    IQueryFilter filter=new QueryFilterClass();
                //    filter.WhereClause = "TemplateName='" + template.Name + "'";
                //    ICursor pCursor = pTable.Search(filter, false);
                //    pRow = pCursor.NextRow();
                //    while (pRow != null)
                //    {
                //        pRow.Delete();
                //        pRow = pCursor.NextRow();
                //    }
                //    ComReleaser.ReleaseCOMObject(pCursor);

                //}
                //int tmpIndex = pTable.FindField("TemplateName");
                //foreach (IYTField ytField in template.Fields)
                //{
                //    pRow = pTable.CreateRow();
                //    pRow.set_Value(tmpIndex, template.Name);
                //    ytField.UpdateRow(pRow);
                //}
                pWksEdit.StopEditOperation();
                pWksEdit.StopEditing(true);
                if (oldID <= 0)
                {
                    _templates.Add(template);
                }
                ComReleaser.ReleaseCOMObject(pTable);
                DisConnect();

                return(true);
            }
            catch (Exception ex)
            {
                MessageService.Current.Warn("系统发生错误:" + ex.Message);
                return(false);

                throw;
            }
        }