// синхронизация объектов void syncFE(FC.FeatureCatalogue catalog, int mode) { if ((mode & 1) != 0) __log("объекты..."); else __log("связи..."); __progress(0,catalog.FeatureTypes.Count); var roles = fobj.GetRoles; IList<FC.FeatureType> ftlist=catalog.GetFeatureTypesInHierarchicalOrder(); if (ftlist != null) foreach(var ft in ftlist) { if (!ft.IsDataType()) { string key=ft.Code; if (convert.IsString(key)) { if ((mode & 1) != 0) { int loc=0; var c = ft.ConstrainedBy.GetConstraint(typeof(GeometryConstraint)) as GeometryConstraint; if (c != null) { if (c.Pt) loc+=1; if (c.Ln) loc+=2; if (c.Pl) loc+=4; } string capt=ft.TypeName; int rc; fobj.sync(key,loc,capt,out rc); if (rc == 1) fobjUpdCount++; else if (rc == 2) fobjNewCount++; else if (rc != 0) __err(); fobjCount++; syncDT(ft); } if ((mode & 2) != 0) { if (roles != null) syncRoles(ft,roles); } } } Application.DoEvents(); __progress(-1,0); } __log("^"); }