Ejemplo n.º 1
0
        private TransactionStatus StartTransaction(string label, Document ovr = null)
        {
            if (string.IsNullOrEmpty(label))
            {
                label = "IFCExporterAPI";
            }

            if (null != ovr)
            {
                if (_transactionOverride != null || ovr.IsModifiable)
                {
                    Cmd.ShowResult("IFCExporterAPI attempts to start a Transaction but one is already active");
                    return(TransactionStatus.Started);
                }

                _transactionOverride = new Transaction(ovr, label);
                return(_transactionOverride.Start());
            }

            if (UIDoc.Document.IsModifiable)
            {
                Cmd.ShowResult("IFCExporterAPI attempts to start a Transaction but one is already active");
                return(TransactionStatus.Started);
            }

            // if we are given a document it overrides the current one in UIDoc for the duration of this transaction
            return(Trans.Start(label));
        }
Ejemplo n.º 2
0
 private static void CheckAndStart()
 {
     while (!PubMaster.IsReady)
     {
         Thread.Sleep(2000);
     }
     TileLifter?.Start();
     Ferry?.Start();
     Carrier?.Start();
     Trans?.Start();
     Rf?.Start();
 }
Ejemplo n.º 3
0
        private long CommitBase(BaseItem baseInfo, 
            ref FSM.FileSet fset,string srcIp,ShareManDBDataContext context)
        {
            // 插入基本信息
            baseInfo.Ext4 = fset.File.Length.ToString();
            context.BaseItem.InsertOnSubmit(baseInfo);
            context.SubmitChanges();
            // 插入审核信息
            Audit ad = new Audit
            {
                ID = baseInfo.ID,
                AuditDate = DateTime.Now,
                State = 0
            };
            context.Audit.InsertOnSubmit(ad);

            // 開始創建文件集
            FSM.FileSetMan src = new ShareMan.FSM.FileSetMan();
            QS.Queries qs = new ShareMan.QS.Queries();
            qs.Url ="http://localhost/QS/QueryService.asmx" ;

            // 查詢WebService服務地址
            src.Url = qs.QueryUrl(srcIp, QS.ServiceType.FileSetMan);
            FileSetLink fsSrc = new FileSetLink();
            //在源站点创建文件集
            fsSrc.FileSetID = src.CreateFileSet(fset,false);
            fsSrc.IP = srcIp;
            /*
             * 此处查询当前活动的中转服务器
             *
             * */
            FileSetLink fsInter = new FileSetLink();
            FSM.FileSetMan inter = new ShareMan.FSM.FileSetMan();

            // 在中转服务器上创建文件集信息
            fsInter.IP = qs.QueryActInterSrv();
            inter.Url = qs.QueryUrl(fsInter.IP, QS.ServiceType.FileSetMan);
            fsInter.FileSetID = inter.CreateFileSet(fset,true);
            // 创建文件集进度信息
            CreateProgress(baseInfo,srcIp,fsInter.IP,fsInter.FileSetID,"上传",context);

            // 查询中转服务器上创建的文件集信息,并保存,用于启动传输任务
            fset = inter.QureyFileSet(fsInter.FileSetID);

            // 准备传输文件集
            Trans fsrv = new Trans();
            fsrv.Url = qs.QueryUrl(qs.QueryActInterSrv(), QS.ServiceType.FileService);
            Position pos = new Position();
            pos.ip = srcIp;
            fsrv.Transform(Convert(fset),pos);
            fsrv.Start();
            // 提交更改
            context.FileSetLink.InsertOnSubmit(fsSrc);
            context.FileSetLink.InsertOnSubmit(fsInter);
            context.SubmitChanges();

            // 创建文件链接信息
            ItemLink iLink = new ItemLink();
            iLink.ID = baseInfo.ID;
            iLink.SrcLink = fsSrc.ID;
            iLink.InterLink = fsInter.ID;
            context.ItemLink.InsertOnSubmit(iLink);
            context.SubmitChanges();
            return baseInfo.ID;
        }
Ejemplo n.º 4
0
 public void TransFileSet(string srcIp,string dstIp, FSM.FileSet fset)
 {
     Trans ts = new Trans();
     QS.Queries qs = new QS.Queries();
     ts.Url = qs.QueryUrl(dstIp, QS.ServiceType.FileService);
     Position pos = new Position();
     pos.ip = srcIp;
     ts.Transform(Convert(fset),pos);
     ts.Start();
 }