/***************************************************/ /**** Private methods ****/ /***************************************************/ private bool CreateCollection(IEnumerable <ILoad> loads) { if (loads.Count() > 0) { int loadId = 0; List <ILoad> loadList = loads.ToList(); //*****move this to adapter ***** modelData.FinishModification(); rf.ILoads rfloads = model.GetLoads(); //******************************* var loadGroupByCase = loadList.GroupBy(load => load.Loadcase.Number); foreach (var caseGroup in loadGroupByCase) { int loadcaseId = caseGroup.Key; rf.ILoadCase rfLoadcase = rfloads.GetLoadCase(loadcaseId, rf.ItemAt.AtNo); rfLoadcase.PrepareModification(); foreach (ILoad load in caseGroup) { loadId = GetAdapterId <int>(load); if (load.GetType().IsAssignableFrom(typeof(BarUniformlyDistributedLoad))) { BarUniformlyDistributedLoad barLoad = load as BarUniformlyDistributedLoad; rf.MemberLoad[] rfBarLoads = barLoad.ToRFEM(loadId, loadcaseId).ToArray(); foreach (rf.MemberLoad item in rfBarLoads) { rfLoadcase.SetMemberLoad(item); } } //if (load.GetType().IsAssignableFrom(typeof(BarPointLoad))) //{ // BarPointLoad barLoad = load as BarPointLoad; // rf.MemberLoad[] rfBarLoads = barLoad.ToRFEM(loadId, loadcaseId).ToArray(); // foreach (rf.MemberLoad item in rfBarLoads) // rfLoadcase.SetMemberLoad(item); //} } rfLoadcase.FinishModification(); // <---- move to adapter modelData.PrepareModification(); //<--- hack to avoid app lock issue } } return(true); }