private List <MfProjectModel> GetPartModel(MfModelDicts dicts, ModelLists list, TraceSource ts, string url) { var ms = new List <MfProjectModel>(); var m = (ProjectModel)_model; var group = MfProjectModel.GroupArrays(m.Elements, MaxCount); ts.TraceInformation("分组个数:" + group.Count); foreach (var g in group) { ts.TraceInformation("每组个数:" + g.Count); var pModel = new MfProjectModel { Dicts = dicts, ModelUrl = url }; FillModelProps(pModel); var mm = new ProjectModel { Id = m.Id, Name = m.Name, Project = m.Project }; mm.Elements.AddRange(g); pModel.Model = mm; pModel.Lists = list; ms.Add(pModel); } return(ms); }
public void AddFrom(MfModelDicts dict) { foreach (var c in dict.Cates) { if (!Cates.ContainsKey(c.Key)) { Cates.Add(c.Key, c.Value); } } foreach (var c in dict.Elems) { if (!Elems.ContainsKey(c.Key)) { Elems.Add(c.Key, c.Value); } } foreach (var c in dict.Fams) { if (!Fams.ContainsKey(c.Key)) { Fams.Add(c.Key, c.Value); } } foreach (var c in dict.Floors) { if (!Floors.ContainsKey(c.Key)) { Floors.Add(c.Key, c.Value); } } foreach (var c in dict.Mats) { if (!Mats.ContainsKey(c.Key)) { Mats.Add(c.Key, c.Value); } } foreach (var c in dict.Types) { if (!Types.ContainsKey(c.Key)) { Types.Add(c.Key, c.Value); } } foreach (var c in dict.Views) { if (!Views.ContainsKey(c.Key)) { Views.Add(c.Key, c.Value); } } }
public MfProjectModel() { MaxCount = 500; Dicts = new MfModelDicts(); }
public string ServerRun(Func <object, string> toJson, Func <string, MfModelDicts> toDict, string modelUrl) { var hasExtensionMethod = _vault.ExtensionMethodOperations.DoesActiveVaultExtensionMethodExist(VaultExtensionMethodName); if (!hasExtensionMethod) { return("服务器未安装或启用扩展方法:" + VaultExtensionMethodName); } var log = MfProjectModel.GetTrace <MfModel>(); var list = ((ProjectModel)_model).GetLists(); //总的模型数据(元素唯一标识)列表 //var basicModel = GetBasicModel(list); //var basicContent = ModelUtility.GetZippedContent(basicModel, toJson); //var basicInfo = _vault.ExtensionMethodOperations.ExecuteVaultExtensionMethod(VaultExtensionMethodName, basicContent); //var dict = ModelUtility.FromZippedContent<MfModelDicts>(basicInfo, toDict); var basicInfo = String.Empty; var partInfo = String.Empty; var basicDict = new MfModelDicts(); try { var bms = GetBasicModels(list, log, modelUrl); foreach (var bm in bms) { var basicContent = ModelUtility.GetZippedContent(bm, toJson); basicInfo = _vault.ExtensionMethodOperations.ExecuteVaultExtensionMethod(VaultExtensionMethodName, basicContent); try { var pDict = ModelUtility.FromZippedContent <MfModelDicts>(basicInfo, toDict); basicDict.AddFrom(pDict); } catch (Exception e) { var err = ModelUtility.FromZippedContent(basicInfo, s => s); log.TraceEvent(TraceEventType.Warning, 0, err + "\r\n" + e.Message); return(err); } } var partModels = GetPartModel(basicDict, list, log, modelUrl); foreach (var partModel in partModels) { var partContent = ModelUtility.GetZippedContent(partModel, toJson); partInfo = _vault.ExtensionMethodOperations.ExecuteVaultExtensionMethod(VaultExtensionMethodName, partContent); try { var pDict = ModelUtility.FromZippedContent <MfModelDicts>(partInfo, toDict); } catch (Exception e) { var err = ModelUtility.FromZippedContent(partInfo, s => s); log.TraceEvent(TraceEventType.Warning, 0, err + "\r\n" + e.Message); return(err); } } return(String.Empty); } catch (Exception ex) { var errInfo = basicInfo; if (!String.IsNullOrEmpty(partInfo)) { errInfo = partInfo; } var err = ModelUtility.FromZippedContent(errInfo, s => s); log.TraceEvent(TraceEventType.Warning, 0, err + "\r\n" + ex.Message); return(err); } finally { log.Close(); } }