public ViewResult AssignExtAttribToUser()
        {
            ManageApplicationExtensionsAssignment model = new ManageApplicationExtensionsAssignment();

            try
            {
                var azureClient = GraphAuthService.GetActiveDirectoryClient(ConfigHelper.UseApplicationPermissions);

                var apps           = azureClient.Applications.ExecuteAsync().Result;
                var enumeratedApps = AzureADExtensions.EnumerateAllAsync(apps).Result;

                foreach (var app in enumeratedApps.OrderBy(a => a.DisplayName))
                {
                    model.TenantApplications.Add(new SelectListItem()
                    {
                        Text = app.DisplayName, Value = app.DisplayName
                    });
                }

                model.isOk = true;
            }
            catch (Exception ex)
            {
                model.message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : "");
            }

            return(View("AssignExtAttribToUser", model));
        }
        public async Task <ActionResult> AssignExtAttribToUser(ManageApplicationExtensionsAssignment model)
        {
            List <ResultsItem> items = new List <ResultsItem>();

            if (ModelState.IsValid)
            {
                try
                {
                    var azureClient = GraphAuthService.GetActiveDirectoryClient(ConfigHelper.UseApplicationPermissions);

                    Tuple <bool, string, string, string, string> tup = await usersService.AssignExtensionAttributeToUser(azureClient, model.UserEmailAddress, model.AppName,
                                                                                                                         model.AppExtAttribName, model.ExtAttribValue);


                    Microsoft.Azure.ActiveDirectory.GraphClient.User user = (Microsoft.Azure.ActiveDirectory.GraphClient.User)azureClient.Users.Where(u => u.Mail.Equals(
                                                                                                                                                          model.UserEmailAddress, StringComparison.CurrentCultureIgnoreCase) ||
                                                                                                                                                      u.UserPrincipalName.Equals(model.UserEmailAddress, StringComparison.CurrentCultureIgnoreCase)
                                                                                                                                                      ).ExecuteAsync().Result.CurrentPage.FirstOrDefault();

                    if (user != null)
                    {
                        foreach (var s in user.GetExtendedProperties())
                        {
                            items.Add(new ResultsItem()
                            {
                                Id = s.Key, Display = (s.Value == null ? "" : s.Value.ToString())
                            });
                        }
                    }

                    return(View("ListuserExtAttributes", new Tuple <bool, string, string, List <ResultsItem> >(tup.Item1, tup.Item2, model.UserEmailAddress, items)));
                }
                catch (Exception ex)
                {
                    model.isOk    = false;
                    model.message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : "");
                }
            }

            return(View("AssignExtAttribToUser", model));
        }