static public ReferenceObject CopyPE(ReferenceObject исходныйОбъект, ReferenceObject целевойОбъект, List <Guid> listParametersToSkip) { ReferenceObject копияИсходногоОбъекта = References.ProjectManagementReference.CreateReferenceObject(целевойОбъект, References.Class_ProjectManagementWork); foreach (Parameter parameter in копияИсходногоОбъекта.ParameterValues) { if (parameter.IsReadOnly) { continue; } if (listParametersToSkip.Contains(parameter.ParameterInfo.Guid) || listLinksToSkip.Contains(parameter.ParameterInfo.Guid)) { continue; } копияИсходногоОбъекта[parameter.ParameterInfo].Value = исходныйОбъект[parameter.ParameterInfo].Value; } копияИсходногоОбъекта.SetParent(целевойОбъект); копияИсходногоОбъекта.EndChanges(); if (копияИсходногоОбъекта != null) { return(копияИсходногоОбъекта); } else { MessageBox.Show("Не удалось создать копию в целевом объекте - " + целевойОбъект.ToString()); } return(null); }
public void ДобавитьВДополнительныйДоступ(ReferenceObject пользователь) { if (пользователь == null) { return; } if ((пользователь as User) == null) { throw new Exception(пользователь.ToString() + " не является пользователем"); } if (СписокЛюдейИзДополнительногоДоступа().Contains(пользователь)) { return; } ((ReferenceObject)ReferenceObject).AddLinkedObject(RCC_link_ExtraAccess_GUID, пользователь); ЕстьИзмененияДляСохраненияВБД = true; return; }