private IActiveDirectoryObject WrapObjectInner(AADObjectInner inner)
        {
            var    managementClient = ((GroupsOperations)manager.Inner.Groups).Client;
            string serialized       = SafeJsonConvert.SerializeObject(inner, managementClient.SerializationSettings);

            switch (inner.ObjectType)
            {
            case "User":
                UserInner user = SafeJsonConvert.DeserializeObject <UserInner>(serialized, managementClient.DeserializationSettings);
                return(new ActiveDirectoryUserImpl(user, manager));

            case "Group":
                ADGroupInner group = SafeJsonConvert.DeserializeObject <ADGroupInner>(serialized, managementClient.DeserializationSettings);
                return(new ActiveDirectoryGroupImpl(group, manager));

            case "ServicePrincipal":
                ServicePrincipalInner sp = SafeJsonConvert.DeserializeObject <ServicePrincipalInner>(serialized, managementClient.DeserializationSettings);
                return(new ServicePrincipalImpl(sp, manager));

            case "Application":
                ApplicationInner app = SafeJsonConvert.DeserializeObject <ApplicationInner>(serialized, managementClient.DeserializationSettings);
                return(new ActiveDirectoryApplicationImpl(app, manager));

            default:
                return(null);
            }
        }
 protected override IActiveDirectoryUser WrapModel(UserInner userInner)
 {
     if (userInner == null)
     {
         return(null);
     }
     return(new ActiveDirectoryUserImpl(userInner, manager));
 }
Example #3
0
        public async Task <Microsoft.Azure.Management.Graph.RBAC.Fluent.IActiveDirectoryUser> GetByNameAsync(string name, CancellationToken cancellationToken = default(CancellationToken))
        {
            UserInner inner = null;

            try
            {
                inner = await Inner.GetAsync(name, cancellationToken);
            }
            catch (GraphErrorException e)
            {
                if (e.Response.StatusCode != HttpStatusCode.NotFound)
                {
                    throw e;
                }
            }
            if (inner != null)
            {
                return(WrapModel(inner));
            }
            if (name.Contains("@"))
            {
                var inners = await Inner.ListAsync(
                    new ODataQuery <UserInner>
                {
                    Filter = string.Format("mail eq '{0}' or mailNickName eq '{1}%23EXT%23'", name, name.Replace("@", "_"))
                },
                    cancellationToken);

                if (inners != null && inners.Any())
                {
                    return(WrapModel(inners.First()));
                }
            }
            else
            {
                var inners = await Inner.ListAsync(
                    new ODataQuery <UserInner>
                {
                    Filter = string.Format("displayName eq '{0}'", name)
                },
                    cancellationToken);

                if (inners != null && inners.Any())
                {
                    return(WrapModel(inners.First()));
                }
            }
            return(null);
        }
 /// <summary>
 /// Updates publishing user
 /// </summary>
 /// <remarks>
 /// Updates publishing user
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='userDetails'>
 /// Details of publishing user
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <UserInner> UpdatePublishingUserAsync(this IWebSiteManagementClient operations, UserInner userDetails, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdatePublishingUserWithHttpMessagesAsync(userDetails, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Create or replace an existing user profile.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='labName'>
 /// The name of the lab.
 /// </param>
 /// <param name='name'>
 /// The name of the user profile.
 /// </param>
 /// <param name='user'>
 /// Profile of a lab user.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <UserInner> CreateOrUpdateAsync(this IUsersOperations operations, string resourceGroupName, string labName, string name, UserInner user, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, labName, name, user, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }