Bläddra i källkod

mxg:解决上传异常

mengxiangge 6 år sedan
förälder
incheckning
db9cf038c9

+ 1 - 0
MBI/SAGA.MBI/Interaction/MBIModelInfoUpload.cs

@@ -81,6 +81,7 @@ namespace SAGA.MBI.Interaction
             Dictionary<string,bool> results=new Dictionary<string, bool>();
             foreach (var context in contexts)
             {
+                if(context==null)continue;
                 try
                 {
                     context.OpenDocument();

+ 61 - 52
MBI/SAGA.MBI/WinView/Upload/VMUploadModeManage.cs

@@ -22,6 +22,7 @@ using SAGA.MBI.DataArrange;
 using SAGA.MBI.RequestData;
 using SAGA.MBIAssistData.BLL;
 using SAGA.MBI.Interaction;
+using SAGA.RevitUtils;
 
 namespace SAGA.MBI.WinView.Upload
 {
@@ -101,75 +102,83 @@ namespace SAGA.MBI.WinView.Upload
         [Command]
         public void Upload(object param)
         {
-            Window mainWin = param as Window;
-            if (mainWin == null) return;
-            if (IsUploadModify)
+            try
             {
-                WinUploadConfirmModify win = new WinUploadConfirmModify();
-                if (win.ShowDialog() == true)
+                Window mainWin = param as Window;
+                if (mainWin == null) return;
+                if (IsUploadModify)
                 {
-                    var upfloors = UploadFloors.Where(t =>
-                        t.IsUpload && t.MFloor.FloorLock.LockState == MFloorLockState.LockBySelf).ToList();
-                    int i = 0, count = upfloors.Count();
-                    foreach (var ufloor in upfloors)
+                    WinUploadConfirmModify win = new WinUploadConfirmModify();
+                    if (win.ShowDialog() == true)
                     {
-                        try
+                        var upfloors = UploadFloors.Where(t =>
+                            t.IsUpload && t.MFloor.FloorLock.LockState == MFloorLockState.LockBySelf).ToList();
+                        int i = 0, count = upfloors.Count();
+                        foreach (var ufloor in upfloors)
                         {
-                            i++;
-                            CalcContext context = ufloor.CalcContext;
-
-                            Log4Net.Debug($"开始上传楼层 {ufloor.MFloor} 数据");
-                            if (context == null || !context.Upload())
-                            {
-                                continue;
-                            }
-                            Log4Net.Debug($"结束上传楼层 {ufloor.MFloor} 数据");
-                            Log4Net.Debug($"开始上传楼层 {ufloor.MFloor} 模型文件");
-                            if (FloorFileOperate.UploadFile(ufloor.MFloor.ToString(), ufloor.MFloor.FullPath, count, i))
+                            try
                             {
-                                Log4Net.Debug($"结束上传楼层 {ufloor.MFloor} 模型文件");
+                                i++;
+                                CalcContext context = ufloor.CalcContext;
+
+                                Log4Net.Debug($"开始上传楼层 {ufloor.MFloor} 数据");
+                                if (context == null || !context.Upload())
+                                {
+                                    continue;
+                                }
+                                Log4Net.Debug($"结束上传楼层 {ufloor.MFloor} 数据");
+                                Log4Net.Debug($"开始上传楼层 {ufloor.MFloor} 模型文件");
+                                if (FloorFileOperate.UploadFile(ufloor.MFloor.ToString(), ufloor.MFloor.FullPath, count, i))
+                                {
+                                    Log4Net.Debug($"结束上传楼层 {ufloor.MFloor} 模型文件");
 
-                                Log4Net.Debug($"开始楼层 {ufloor.MFloor} 后序操作");
-                                //请除Duty和BIMID的关系
-                                MBIAssistHelper.DeleteFloorRelation(ufloor.MFloor.Id);
-                                //解锁
-                                DalLock.UnLockFloor(ufloor.MFloor.Id, false);
-                                //上传成功后清除日志数据
-                                ProjectLogManager.ClearFiles(ufloor.MFloor.Id);
-                                //删除备份文件
-                                FloorFileOperate.Del000BakFile(ufloor.MFloor.FullPath);
+                                    Log4Net.Debug($"开始楼层 {ufloor.MFloor} 后序操作");
+                                    //请除Duty和BIMID的关系
+                                    MBIAssistHelper.DeleteFloorRelation(ufloor.MFloor.Id);
+                                    //解锁
+                                    DalLock.UnLockFloor(ufloor.MFloor.Id, false);
+                                    //上传成功后清除日志数据
+                                    ProjectLogManager.ClearFiles(ufloor.MFloor.Id);
+                                    //删除备份文件
+                                    FloorFileOperate.Del000BakFile(ufloor.MFloor.FullPath);
 
-                                Log4Net.Debug($"结束楼层 {ufloor.MFloor} 后序操作");
+                                    Log4Net.Debug($"结束楼层 {ufloor.MFloor} 后序操作");
+                                }
                             }
+                            catch (Exception e)
+                            {
+                                MessageShowBase.Show(e);
+                            }
+
                         }
-                        catch (Exception e)
-                        {
-                            MessageShowBase.Show(e);
-                        }
+                        #region 上传底图文件
+                        Log4Net.Debug($"开始楼层底图上传");
+                        MBIModelInfoUpload.UpdateMbiInfo(upfloors.Select(f => f.CalcContext).ToList());
+                        Log4Net.Debug($"结束楼层底图上传");
+                        #endregion
+                        //添加提示窗口
+                        UpLoadFileRequest.CloseUploadWindow(true, true);
 
-                    }
-                    #region 上传底图文件
-                    Log4Net.Debug($"开始楼层底图上传");
-                    MBIModelInfoUpload.UpdateMbiInfo(upfloors.Select(f => f.CalcContext).ToList());
-                    Log4Net.Debug($"结束楼层底图上传");
-                    #endregion
-                    //添加提示窗口
-                    UpLoadFileRequest.CloseUploadWindow(true, true);
+                        mainWin.Close();
 
-                    mainWin.Close();
+                    }
 
                 }
+                else
+                {
+                    MessageShowBase.Infomation("功能正在开发。");
+                    //WinUploadConfirmReplace win = new WinUploadConfirmReplace();
+                    //if (win.ShowDialog() == true)
+                    //{
 
+                    //}
+                }
             }
-            else
+            catch (Exception e)
             {
-                MessageShowBase.Infomation("功能正在开发。");
-                //WinUploadConfirmReplace win = new WinUploadConfirmReplace();
-                //if (win.ShowDialog() == true)
-                //{
-
-                //}
+                MessageShow.Show(e);
             }
+            
         }
         public bool CanUpload(object param)
         {