Ejemplo n.º 1
0
        private void DeployManagedAccount(object modelHost, SPFarm farm, ManagedAccountDefinition managedAccountDefinition)
        {
            var currentAccount = GetManagedAccount(farm, managedAccountDefinition);

            var loginName = managedAccountDefinition.LoginName;
            var accounts  = new SPFarmManagedAccountCollection(farm);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentAccount,
                ObjectType       = typeof(SPManagedAccount),
                ObjectDefinition = managedAccountDefinition,
                ModelHost        = modelHost
            });


            if (currentAccount == null)
            {
                TraceService.Information((int)LogEventId.ModelProvisionProcessingNewObject, "Processing new managed account");

                currentAccount = accounts.FindOrCreateAccount(loginName);

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentAccount,
                    ObjectType       = typeof(SPManagedAccount),
                    ObjectDefinition = managedAccountDefinition,
                    ModelHost        = modelHost
                });

                currentAccount.Update();
            }
            else
            {
                TraceService.Information((int)LogEventId.ModelProvisionProcessingExistingObject, "Processing existing managed account");

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentAccount,
                    ObjectType       = typeof(SPManagedAccount),
                    ObjectDefinition = managedAccountDefinition,
                    ModelHost        = modelHost
                });

                currentAccount.Update();
            }
        }
Ejemplo n.º 2
0
        protected SPManagedAccount GetManagedAccount(SPFarm farm, ManagedAccountDefinition managedAccountDefinition)
        {
            var loginName = managedAccountDefinition.LoginName;
            var accounts  = new SPFarmManagedAccountCollection(farm);

            SPManagedAccount currentAccount = null;

            try
            {
                currentAccount = accounts[loginName];
            }
            catch (Exception)
            { }

            return(currentAccount);
        }
Ejemplo n.º 3
0
 public static ModelNode AddManagedAccount(this ModelNode model, ManagedAccountDefinition fielDefinition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(fielDefinition, action));
 }
Ejemplo n.º 4
0
 public static ModelNode AddManagedAccount(this ModelNode siteModel, ManagedAccountDefinition definition)
 {
     return(AddManagedAccount(siteModel, definition, null));
 }
 public static TModelNode AddManagedAccount <TModelNode>(this TModelNode model, ManagedAccountDefinition definition,
                                                         Action <ManagedAccountModelNode> action)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static TModelNode AddManagedAccount <TModelNode>(this TModelNode model, ManagedAccountDefinition definition)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(AddManagedAccount(model, definition, null));
 }