internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            TaskLogger.LogEnter();
            notFoundReason = null;
            IEnumerable <T> result = new List <T>();

            if (typeof(Database).IsAssignableFrom(typeof(T)) && !string.IsNullOrEmpty(base.RawIdentity))
            {
                LegacyDN legacyDN = null;
                if (LegacyDN.TryParse(base.RawIdentity, out legacyDN))
                {
                    QueryFilter filter = new ComparisonFilter(ComparisonOperator.Equal, DatabaseSchema.ExchangeLegacyDN, base.RawIdentity);
                    result = base.PerformPrimarySearch <T>(filter, rootId, session, true, optionalData);
                }
            }
            else
            {
                result = base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason);
            }
            TaskLogger.LogExit();
            return(result);
        }
Ejemplo n.º 2
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.Identity
     });
     if (this.Identity != null && this.InternalIgnoreDefaultScope)
     {
         ADObjectId adobjectId;
         if (!RecipientTaskHelper.IsValidDistinguishedName(this.Identity, out adobjectId))
         {
             base.WriteError(new ArgumentException(Strings.ErrorOnlyDNSupportedWithIgnoreDefaultScope), (ErrorCategory)1000, this.Identity);
         }
         IConfigurable dataObject = RecipientTaskHelper.ResolveDataObject <TDataObject>(base.DataSession, null, base.ServerSettings, this.Identity, this.RootId, base.OptionalIdentityData, base.DomainController, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <TDataObject>), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError));
         this.WriteResult(dataObject);
     }
     else
     {
         base.InternalProcessRecord();
     }
     TaskLogger.LogExit();
 }
Ejemplo n.º 3
0
 // Token: 0x06000596 RID: 1430 RVA: 0x00015494 File Offset: 0x00013694
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter();
     if (!this.IsObjectStateChanged())
     {
         bool flag = false;
         if (!base.TryGetVariableValue <bool>("ExchangeDisableNotChangedWarning", out flag) || !flag)
         {
             TDataObject dataObject = this.DataObject;
             if (dataObject.Identity != null)
             {
                 TDataObject dataObject2 = this.DataObject;
                 this.WriteWarning(Strings.WarningForceMessageWithId(dataObject2.Identity.ToString()));
             }
             else
             {
                 this.WriteWarning(Strings.WarningForceMessage);
             }
         }
     }
     base.InternalProcessRecord();
     TaskLogger.LogExit();
 }
Ejemplo n.º 4
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.DataObject
     });
     try
     {
         base.Validate(this.DataObject);
         if (base.HasErrors)
         {
             return;
         }
         TDataObject dataObject = this.DataObject;
         if (dataObject.Identity != null)
         {
             base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(this.DataObject, base.DataSession, typeof(TDataObject)));
         }
         using (TaskPerformanceData.SaveResult.StartRequestTimer())
         {
             base.DataSession.Save(this.DataObject);
         }
     }
     catch (DataSourceTransientException exception)
     {
         base.WriteError(exception, (ErrorCategory)1002, null);
     }
     finally
     {
         TDataObject dataObject2 = this.DataObject;
         if (dataObject2.Identity != null)
         {
             base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession));
         }
     }
     TaskLogger.LogExit();
 }
Ejemplo n.º 5
0
        protected override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            TDataObject tdataObject = (TDataObject)((object)base.PrepareDataObject());

            if (this.TemplateInstance != null)
            {
                TDataObject tdataObject2 = Activator.CreateInstance <TDataObject>();
                this.InitializeDataObject(tdataObject2);
                tdataObject2.ProvisionalClone(new PSObjectWrapper(this.TemplateInstance));
                tdataObject2.CopyChangesFrom(tdataObject);
                tdataObject = tdataObject2;
            }
            if (base.CurrentOrganizationId != null)
            {
                tdataObject.OrganizationId = base.CurrentOrganizationId;
            }
            else
            {
                tdataObject.OrganizationId = base.ExecutingUserOrganizationId;
            }
            TaskLogger.LogExit();
            return(tdataObject);
        }
Ejemplo n.º 6
0
        internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            TaskLogger.LogEnter();
            if (!typeof(ADRecipient).IsAssignableFrom(typeof(T)) && !typeof(ReducedRecipient).IsAssignableFrom(typeof(T)))
            {
                throw new ArgumentException(Strings.ErrorInvalidType(typeof(T).Name), "type");
            }
            if (Globals.IsConsumerOrganization(session.SessionSettings.CurrentOrganizationId) && ADSessionFactory.UseAggregateSession(session.SessionSettings))
            {
                return(ConsumerMailboxIdParameter.Parse(base.RawIdentity).GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));
            }
            EnumerableWrapper <T> enumerableWrapper = EnumerableWrapper <T> .GetWrapper(base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));

            if (!enumerableWrapper.HasElements() && session is IRecipientSession)
            {
                enumerableWrapper = base.GetEnumerableWrapper <T>(enumerableWrapper, this.GetObjectsByAccountName <T>(base.RawIdentity, rootId, (IRecipientSession)session, optionalData));
            }
            if (enumerableWrapper.HasUnfilteredElements() && !enumerableWrapper.HasElements())
            {
                notFoundReason = new LocalizedString?(this.GetErrorMessageForWrongType(this.ToString()));
            }
            TaskLogger.LogExit();
            return(enumerableWrapper);
        }
        // Token: 0x06000AFC RID: 2812 RVA: 0x00023724 File Offset: 0x00021924
        internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            TaskLogger.LogEnter();
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            if (!(session is IConfigurationSession))
            {
                throw new ArgumentException(Strings.ErrorInvalidType(session.GetType().Name), "session");
            }
            if (((typeof(T) == typeof(ADOrganizationalUnit) && session.UseConfigNC) || (typeof(T) == typeof(ExchangeConfigurationUnit) && !session.UseConfigNC)) && !Environment.StackTrace.Contains("Microsoft.Exchange.Management.Deployment.OrganizationTaskHelper.GetExchangeConfigUnitFromOrganizationId"))
            {
                throw new ArgumentException("Session is using the wrong Naming Context for the desired search");
            }
            notFoundReason = null;
            EnumerableWrapper <T> result = EnumerableWrapper <T> .Empty;

            if (base.IsMultitenancyEnabled())
            {
                if (this.IsWildcardDefined(base.RawIdentity))
                {
                    if (null == this.AccountPartition)
                    {
                        notFoundReason = new LocalizedString?(Strings.ErrorOrganizationWildcard);
                        return(result);
                    }
                    IEnumerable <ExchangeConfigurationUnit> configurationUnits = this.GetConfigurationUnits((IConfigurationSession)session, base.RawIdentity);
                    return(EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) configurationUnits, this.GetEnumerableFilter <T>()));
                }
                else
                {
                    OrganizationId organizationId = this.ResolveOrganizationId(session.SessionSettings.CurrentOrganizationId);
                    if (!OrganizationId.ForestWideOrgId.Equals(organizationId))
                    {
                        ADSessionSettings adsessionSettings = ADSessionSettings.FromCustomScopeSet(ScopeSet.ResolveUnderScope(organizationId, session.SessionSettings.ScopeSet), session.SessionSettings.RootOrgId, organizationId, session.SessionSettings.ExecutingUserOrganizationId, true);
                        adsessionSettings.TenantConsistencyMode = TenantConsistencyMode.IncludeRetiredTenants;
                        bool flag = TaskHelper.ShouldPassDomainControllerToSession(session.DomainController, adsessionSettings);
                        ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(flag ? session.DomainController : null, session.ReadOnly, session.ConsistencyMode, flag ? session.NetworkCredential : null, adsessionSettings, 314, "GetObjects", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\IdentityParameter\\organizationidparameter.cs");
                        tenantConfigurationSession.UseConfigNC      = session.UseConfigNC;
                        tenantConfigurationSession.UseGlobalCatalog = session.UseGlobalCatalog;
                        if (typeof(ExchangeConfigurationUnit) == typeof(T) && organizationId.ConfigurationUnit != null)
                        {
                            List <ExchangeConfigurationUnit> list = new List <ExchangeConfigurationUnit>();
                            ExchangeConfigurationUnit        exchangeConfigurationUnit = tenantConfigurationSession.Read <ExchangeConfigurationUnit>(organizationId.ConfigurationUnit);
                            if (exchangeConfigurationUnit != null)
                            {
                                list.Add(exchangeConfigurationUnit);
                                result = EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) list, this.GetEnumerableFilter <T>());
                            }
                        }
                        else if (organizationId.OrganizationalUnit != null)
                        {
                            List <ADOrganizationalUnit> list2 = new List <ADOrganizationalUnit>();
                            ADOrganizationalUnit        adorganizationalUnit = tenantConfigurationSession.Read <ADOrganizationalUnit>(organizationId.OrganizationalUnit);
                            if (adorganizationalUnit != null)
                            {
                                list2.Add(adorganizationalUnit);
                                result = EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) list2, this.GetEnumerableFilter <T>());
                            }
                        }
                    }
                }
            }
            TaskLogger.LogExit();
            return(result);
        }
Ejemplo n.º 8
0
        protected void Install()
        {
            TaskLogger.LogEnter(new object[]
            {
                this.Name
            });
            Hashtable hashtable = new Hashtable();

            if (!ServiceControllerUtils.IsInstalled(this.Name))
            {
                try
                {
                    TaskLogger.Trace("Installing service", new object[0]);
                    this.serviceProcessInstaller.Install(hashtable);
                }
                catch (Win32Exception ex)
                {
                    if (1072 == ex.NativeErrorCode)
                    {
                        Thread.Sleep(10000);
                        hashtable = new Hashtable();
                        this.serviceProcessInstaller.Install(hashtable);
                    }
                    else
                    {
                        base.WriteError(new TaskWin32Exception(ex), ErrorCategory.WriteError, null);
                    }
                }
                base.ConfigureServiceSidType();
                if (this.serviceFirewallRules.Count > 0)
                {
                    foreach (ExchangeFirewallRule exchangeFirewallRule in this.serviceFirewallRules)
                    {
                        TaskLogger.Trace("Adding Windows Firewall Rule for Service {0}", new object[]
                        {
                            this.Name
                        });
                        exchangeFirewallRule.Add();
                    }
                }
                this.serviceProcessInstaller.Commit(hashtable);
            }
            else
            {
                TaskLogger.Trace("Service is already installed.", new object[0]);
            }
            if (this.Description != null)
            {
                try
                {
                    using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(ManageService.serviceRegPath + this.Name, true))
                    {
                        registryKey.SetValue(ManageService.descriptionSubKeyName, this.Description);
                    }
                    goto IL_197;
                }
                catch (SecurityException inner)
                {
                    base.WriteError(new SecurityException(Strings.ErrorOpenKeyDeniedForWrite(ManageService.serviceRegPath + this.Name), inner), ErrorCategory.WriteError, null);
                    goto IL_197;
                }
            }
            TaskLogger.Trace("No service description", new object[0]);
IL_197:
            if (this.EventMessageFile != null)
            {
                RegistryKey registryKey2 = null;
                try
                {
                    try
                    {
                        registryKey2 = Registry.LocalMachine.OpenSubKey(ManageService.eventLogRegPath + this.Name, true);
                        if (registryKey2 == null)
                        {
                            registryKey2 = Registry.LocalMachine.CreateSubKey(ManageService.eventLogRegPath + this.Name, RegistryKeyPermissionCheck.ReadWriteSubTree);
                        }
                        registryKey2.SetValue(ManageService.eventMessageFileSubKeyName, this.EventMessageFile);
                        registryKey2.SetValue(ManageService.categoryMessageFileSubKeyName, this.EventMessageFile);
                        registryKey2.SetValue(ManageService.categoryCountSubKeyName, this.CategoryCount);
                        registryKey2.SetValue(ManageService.typesSupportedSubKeyName, 7);
                    }
                    catch (SecurityException inner2)
                    {
                        base.WriteError(new SecurityException(Strings.ErrorOpenKeyDeniedForWrite(ManageService.serviceRegPath + this.Name), inner2), ErrorCategory.WriteError, null);
                    }
                    goto IL_281;
                }
                finally
                {
                    if (registryKey2 != null)
                    {
                        registryKey2.Close();
                        registryKey2 = null;
                    }
                }
            }
            TaskLogger.Trace("No event message file", new object[0]);
IL_281:
            if (base.FirstFailureActionType != ServiceActionType.None)
            {
                base.ConfigureFailureActions();
                base.ConfigureFailureActionsFlag();
            }
            else
            {
                TaskLogger.Trace("No failure actions", new object[0]);
            }
            TaskLogger.LogExit();
        }
Ejemplo n.º 9
0
        protected sealed override IConfigurable PrepareDataObject()
        {
            TaskLogger.LogEnter();
            TDataObject tdataObject = (TDataObject)((object)base.PrepareDataObject());

            if (string.IsNullOrEmpty(tdataObject.Alias))
            {
                using (new CmdletMonitoredScope(base.CurrentTaskContext.UniqueId, "BizLogic", "RecipientTaskHelper.GenerateUniqueAlias", LoggerHelper.CmdletPerfMonitors))
                {
                    tdataObject.Alias = RecipientTaskHelper.GenerateUniqueAlias(base.TenantGlobalCatalogSession, base.CurrentOrganizationId, base.Name, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose));
                }
            }
            if (!this.GetEmailAddressPolicyEnabledDefaultValue(tdataObject))
            {
                tdataObject.EmailAddressPolicyEnabled = false;
            }
            if (string.IsNullOrEmpty(tdataObject.DisplayName))
            {
                tdataObject.DisplayName = tdataObject.Name;
            }
            if (base.IsProvisioningLayerAvailable)
            {
                ProvisioningLayer.UpdateAffectedIConfigurable(this, this.ConvertDataObjectToPresentationObject(tdataObject), false);
            }
            else
            {
                base.WriteError(new InvalidOperationException(Strings.ErrorNoProvisioningHandlerAvailable), (ErrorCategory)1001, null);
            }
            if (tdataObject.EmailAddresses.Count > 0)
            {
                using (new CmdletMonitoredScope(base.CurrentTaskContext.UniqueId, "BizLogic", "NewRecipientObjectTask<TDataObject>.VerifyProxyAddress", LoggerHelper.CmdletPerfMonitors))
                {
                    ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, tdataObject.OrganizationId, base.ExecutingUserOrganizationId, false);
                    IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, string.IsNullOrEmpty(base.DomainController) ? null : base.NetCredential, sessionSettings, 867, "PrepareDataObject", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\NewAdObjectTask.cs");
                    bool flag = base.Fields["SoftDeletedObject"] != null;
                    if (flag)
                    {
                        RecipientTaskHelper.StripInvalidSMTPAddress(this.ConfigurationSession, tdataObject, base.ProvisioningCache, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError));
                        RecipientTaskHelper.StripConflictEmailAddress(tenantOrRootOrgRecipientSession, tdataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError));
                    }
                    else
                    {
                        if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled && this.ShouldCheckAcceptedDomains())
                        {
                            RecipientTaskHelper.ValidateSmtpAddress(this.ConfigurationSession, tdataObject.EmailAddresses, tdataObject, new Task.ErrorLoggerDelegate(base.WriteError), base.ProvisioningCache);
                        }
                        RecipientTaskHelper.ValidateEmailAddressErrorOut(tenantOrRootOrgRecipientSession, tdataObject.EmailAddresses, tdataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError));
                    }
                }
            }
            if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled)
            {
                ADRecipient adrecipient = tdataObject;
                if ((RecipientTaskHelper.GetAcceptedRecipientTypes() & adrecipient.RecipientTypeDetails) != RecipientTypeDetails.None && string.IsNullOrEmpty(adrecipient.ExternalDirectoryObjectId))
                {
                    adrecipient.ExternalDirectoryObjectId = Guid.NewGuid().ToString("D");
                }
            }
            TaskLogger.LogExit();
            return(tdataObject);
        }
 // Token: 0x060005DF RID: 1503 RVA: 0x00016563 File Offset: 0x00014763
 protected override void InternalBeginProcessing()
 {
     TaskLogger.LogEnter();
     base.InternalBeginProcessing();
     base.CurrentOrganizationId = this.ResolveCurrentOrganization();
 }
Ejemplo n.º 11
0
        // Token: 0x060005C3 RID: 1475 RVA: 0x00015CAC File Offset: 0x00013EAC
        protected override void InternalProcessRecord()
        {
            TaskLogger.LogEnter();
            OrganizationId currentOrganizationId = base.CurrentOrganizationId;
            TDataObject    dataObject            = this.DataObject;

            if (!currentOrganizationId.Equals(dataObject.OrganizationId))
            {
                this.CurrentOrgState = new LazilyInitialized <SharedTenantConfigurationState>(delegate()
                {
                    TDataObject dataObject17 = this.DataObject;
                    return(SharedConfiguration.GetSharedConfigurationState(dataObject17.OrganizationId));
                });
            }
            ADRecipient adrecipient = this.DataObject;
            bool        flag        = adrecipient != null && adrecipient.RecipientSoftDeletedStatus > 0;

            if (RecipientTaskHelper.IsMailEnabledRecipientType(this.DesiredRecipientType) && !flag)
            {
                if (!base.IsProvisioningLayerAvailable)
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorNoProvisioningHandlerAvailable), (ErrorCategory)1001, null);
                }
                TDataObject dataObject2 = this.DataObject;
                if (dataObject2.IsModified(ADRecipientSchema.EmailAddresses))
                {
                    TDataObject dataObject3 = this.DataObject;
                    if (dataObject3.EmailAddresses.Count > 0)
                    {
                        if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled && this.ShouldCheckAcceptedDomains())
                        {
                            IDirectorySession     configurationSession  = this.ConfigurationSession;
                            TDataObject           dataObject4           = this.DataObject;
                            IConfigurationSession configurationSession2 = (IConfigurationSession)TaskHelper.UnderscopeSessionToOrganization(configurationSession, dataObject4.OrganizationId, true);
                            IConfigurationSession cfgSession            = configurationSession2;
                            TDataObject           dataObject5           = this.DataObject;
                            RecipientTaskHelper.ValidateSmtpAddress(cfgSession, dataObject5.EmailAddresses, this.DataObject, new Task.ErrorLoggerDelegate(base.WriteError), base.ProvisioningCache);
                        }
                        ADObjectId        rootOrgContainerId = base.RootOrgContainerId;
                        TDataObject       dataObject6        = this.DataObject;
                        ADSessionSettings sessionSettings    = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, dataObject6.OrganizationId, base.ExecutingUserOrganizationId, false);
                        IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, string.IsNullOrEmpty(base.DomainController) ? null : base.NetCredential, sessionSettings, 557, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\SetAdObjectTask.cs");
                        IRecipientSession tenantCatalogSession            = tenantOrRootOrgRecipientSession;
                        TDataObject       dataObject7 = this.DataObject;
                        RecipientTaskHelper.ValidateEmailAddressErrorOut(tenantCatalogSession, dataObject7.EmailAddresses, this.DataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError));
                    }
                }
            }
            TDataObject dataObject8 = this.DataObject;

            if (dataObject8.IsChanged(ADObjectSchema.Id))
            {
                IDirectorySession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, base.OrgWideSessionSettings, ConfigScopes.TenantSubTree, 579, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\SetAdObjectTask.cs");
                tenantOrTopologyConfigurationSession.UseConfigNC = ((IDirectorySession)base.DataSession).UseConfigNC;
                TDataObject dataObject9 = this.DataObject;
                ADObjectId  parent      = dataObject9.Id.Parent;
                ADRawEntry  adrawEntry  = tenantOrTopologyConfigurationSession.ReadADRawEntry(parent, new PropertyDefinition[]
                {
                    ADObjectSchema.ExchangeVersion
                });
                ExchangeObjectVersion exchangeObjectVersion = (ExchangeObjectVersion)adrawEntry[ADObjectSchema.ExchangeVersion];
                TDataObject           dataObject10          = this.DataObject;
                if (dataObject10.ExchangeVersion.IsOlderThan(exchangeObjectVersion))
                {
                    TDataObject dataObject11 = this.DataObject;
                    string      name         = dataObject11.Name;
                    TDataObject dataObject12 = this.DataObject;
                    base.WriteError(new TaskException(Strings.ErrorParentHasNewerVersion(name, dataObject12.ExchangeVersion.ToString(), exchangeObjectVersion.ToString())), (ErrorCategory)1004, null);
                }
            }
            TDataObject dataObject13 = this.DataObject;

            if (dataObject13.RecipientType != this.DesiredRecipientType && this.DesiredRecipientType != RecipientType.Invalid)
            {
                TDataObject   dataObject14 = this.DataObject;
                string        id           = dataObject14.Identity.ToString();
                string        oldType      = this.DesiredRecipientType.ToString();
                TDataObject   dataObject15 = this.DataObject;
                Exception     exception    = new InvalidOperationException(Strings.ErrorSetTaskChangeRecipientType(id, oldType, dataObject15.RecipientType.ToString()));
                ErrorCategory category     = (ErrorCategory)1000;
                TDataObject   dataObject16 = this.DataObject;
                base.WriteError(exception, category, dataObject16.Identity);
            }
            base.InternalProcessRecord();
            TaskLogger.LogExit();
        }