Ejemplo n.º 1
0
        internal void AutoOpenPointPlanFile(string file, string cityName, DerivedTypeEnum derivedType, List <string> failedFiles)
        {
            Document     acDoc   = Application.DocumentManager.Open(file, false);
            Database     acCurDb = acDoc.Database;
            Editor       ed      = acDoc.Editor;
            DocumentLock docLock = acDoc.LockDocument();

            try
            {
                ModelBase mb = new ModelBase();

                //if (derivedType is DerivedTypeEnum.PointsPlan)
                //{
                //    mb = new PointsPlanModel();
                //}
                //if (derivedType is DerivedTypeEnum.UnitPlan)
                //{
                //    mb = new UnitPlanModel();
                //}
                //if (derivedType is DerivedTypeEnum.None)
                //{
                //    mb = new ModelBase();
                //}

                // 判断是否读取布局空间(papermodel)
                MainForm.isOnlyModel = mb.IsOnlyModel;
                //MainForm.isOnlyModel = false;
                mb.DocName   = Path.GetFileNameWithoutExtension(file);
                mb.projectId = cityName;

                // 获取图例
                ModelBaseMethod <ModelBase> mbm = new ModelBaseMethod <ModelBase>();
                mbm.GetAllLengedGemo(mb);
                mbm.GetExportLayers(mb);

                //// 获取特殊图层
                //LayerSpecialCommand<ModelBase> layerSpecial = new LayerSpecialCommand<ModelBase>();
                //layerSpecial.AddSpecialLayerModel(mb);

                //mb.LayerList = new List<string>{"道路中线"};
                if (mb.LayerList != null)
                {
                    foreach (string layer in mb.LayerList)
                    {
                        ModelBaseMethod <ModelBase> modelMe = new ModelBaseMethod <ModelBase>();
                        LayerModel lyModel = modelMe.GetAllLayerGemo(mb, layer);

                        if (mb.allLines == null)
                        {
                            mb.allLines = new List <LayerModel>();
                        }
                        mb.allLines.Add(lyModel);
                    }
                    //if (derivedType is DerivedTypeEnum.PointsPlan)
                    //{
                    //    PostModel.AutoPostModelBase(mb as ModelBase, failedFiles);
                    //}
                    //if (derivedType is DerivedTypeEnum.UnitPlan)
                    //{
                    //    PostModel.AutoPostModelBase(mb as ModelBase, failedFiles);
                    //}
                    //if (derivedType is DerivedTypeEnum.None)
                    //{
                    //    PostModel.AutoPostModelBase(mb as ModelBase, failedFiles);
                    //}
                    PostModel.AutoPostModelBase(mb as ModelBase, failedFiles);
                }
                docLock.Dispose();
                acCurDb.Dispose();
                acDoc.CloseAndDiscard();
                acDoc.Dispose();
                GC.Collect();
                System.Windows.Forms.Application.DoEvents();
            }
            catch (Exception e)
            {
                //string logFileName = @"C: \Users\Public\Documents\" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
                //using (TextWriter logFile = TextWriter.Synchronized(File.AppendText(logFileName)))
                //{
                //    logFile.WriteLine(DateTime.Now);
                //    logFile.WriteLine(e.Message);
                //    logFile.WriteLine("\r\n");
                //    logFile.Flush();
                //    logFile.Close();
                //}
                System.Windows.Forms.MessageBox.Show(e.Message);
                docLock.Dispose();
                GC.Collect();
            }
            // 发送类型

            // 发送图层数据
        }