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);
        }
Esempio n. 2
0
 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;
 }