public async Task <Tuple <bool, string> > CreateUserExtensionPropertyForAnApplication(ActiveDirectoryClient azureGraphclient, string AppName, string AppExtAttribName) { bool ActionStatus = false; string message = string.Empty; if (azureGraphclient == null || string.IsNullOrEmpty(AppName) || string.IsNullOrEmpty(AppExtAttribName)) { return(new Tuple <bool, string>(ActionStatus, "Invalid input")); } else { try { //get instance of extension attribute var appi = azureGraphclient.Applications.Where(s => s.DisplayName == AppName).ExecuteAsync().Result.CurrentPage.FirstOrDefault(); if (appi != null) { var exts = azureGraphclient.Applications[appi.ObjectId].ExtensionProperties.ExecuteAsync().Result.EnumerateAllAsync().Result; //var appexts = ((Application)appi).ExtensionProperties; IExtensionProperty extAttrib = exts.Where(a => a.Name == AppExtAttribName).FirstOrDefault(); if (extAttrib == null) { ExtensionProperty newAttrib = new ExtensionProperty { Name = AppExtAttribName, DataType = "String", TargetObjects = { "User" } }; ((Application)appi).ExtensionProperties.Add(newAttrib); await((Application)appi).UpdateAsync(); ActionStatus = true; message = "Successfully created application extension property"; } else { message = "Attribute already associated with application"; } } else { message = "Invalid application"; } } catch (Exception ex) { message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : ""); } } return(new Tuple <bool, string>(ActionStatus, message)); }
public UndefinedPropertyException(IExtensionProperty property) : base($"Undefined {property.Name}.") { }
public async Task <Tuple <bool, string, string, string, string> > AssignExtensionAttributeToUser(ActiveDirectoryClient azureGraphclient, string UserEmailAddress, string AppName, string AppExtAttribName, string ExtAttribValue) { Guid userObjectID = Guid.Empty, approleid = Guid.Empty, srvpr = Guid.Empty; bool ActionStatus = false; string message = string.Empty; if (azureGraphclient == null || string.IsNullOrEmpty(AppName) || string.IsNullOrEmpty(AppExtAttribName) || string.IsNullOrEmpty(ExtAttribValue)) { return(new Tuple <bool, string, string, string, string>(ActionStatus, "Invalid input", null, null, null)); } else { try { //get instance of extension attribute var appi = azureGraphclient.Applications.Where(s => s.DisplayName == AppName).ExecuteAsync().Result.CurrentPage.FirstOrDefault(); if (appi != null) { var exts = azureGraphclient.Applications[appi.ObjectId].ExtensionProperties.ExecuteAsync().Result.EnumerateAllAsync().Result; //var appexts = ((Application)appi).ExtensionProperties; IExtensionProperty extAttrib = exts.Where(a => a.Name == AppExtAttribName).FirstOrDefault(); if (extAttrib != null) { Microsoft.Azure.ActiveDirectory.GraphClient.User userInstance = (Microsoft.Azure.ActiveDirectory.GraphClient.User) azureGraphclient.Users.Where(a => a.Mail.Equals(UserEmailAddress, StringComparison.InvariantCultureIgnoreCase) || a.UserPrincipalName.Equals(UserEmailAddress, StringComparison.InvariantCultureIgnoreCase)).ExecuteAsync().Result.CurrentPage.FirstOrDefault(); if (userInstance != null) { userInstance.SetExtendedProperty(AppExtAttribName, ExtAttribValue); await userInstance.UpdateAsync(); userInstance.GetContext().SaveChanges(); ActionStatus = true; message = "Successfully assigned application extension property to user"; } else { message = "Invalid user"; } } else { message = "Attribute name not associated with application"; } } else { message = "Invalid application"; } } catch (Exception ex) { message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : ""); } } return(new Tuple <bool, string, string, string, string>(ActionStatus, message, userObjectID.ToString(), approleid.ToString(), srvpr.ToString())); }