public async Task <IActionResult> Index()
        {
            var response = await _graphClient.GetAllUsersAsync();

            var accounts = GraphAccounts.Parse(response);

            return(View(accounts.value.Select(x => new UserViewModel(x))));
        }
        public async Task<ActionResult> FindPost()
        {
            string emailAddress = Request.Form["emailAddress"];
            B2CGraphClient b2CGraphClient = new B2CGraphClient(_tenant, _clientId, _clientSecret);
            string json = await b2CGraphClient.SearcUserBySignInNames(emailAddress);
            GraphAccounts graphAccounts = GraphAccounts.Parse(json);

            if (graphAccounts != null && graphAccounts.value != null)
            {
                return RedirectToAction("Edit", new { emailAddress = emailAddress });
            }
            else
            {
                ViewBag.Message = "User not found!";
            }

            return View();
        }
        static void Main(string[] args)
        {
            if (args.Length <= 0)
            {
                Console.WriteLine("Please enter a command as the first argument.");
                Console.WriteLine("\t1                 : Migrate social and local accounts with password");
                Console.WriteLine("\t2                 : Migrate social and local accounts with random password");
                Console.WriteLine("\t3 Email-address  : Get user by email address");
                Console.WriteLine("\t4 Display-name   : Get user by display name");
                Console.WriteLine("\t5                : User migration cleanup");
                return;
            }

            try
            {
                switch (args[0])
                {
                case "1":
                    MigrateUsersWithPasswordAsync().Wait();
                    break;

                case "2":
                    MigrateUsersWithRandomPasswordAsync().Wait();
                    break;

                case "3":
                    if (args.Length == 2)
                    {
                        B2CGraphClient b2CGraphClient = new B2CGraphClient(Program.Tenant, Program.ClientId, Program.ClientSecret);
                        string         JSON           = b2CGraphClient.SearcUserBySignInNames(args[1]).Result;

                        Console.WriteLine(JSON);
                        GraphAccounts users = GraphAccounts.Parse(JSON);
                    }
                    else
                    {
                        Console.WriteLine("Email address parameter is missing");
                    }
                    break;

                case "4":
                    if (args.Length == 2)
                    {
                        B2CGraphClient b2CGraphClient = new B2CGraphClient(Program.Tenant, Program.ClientId, Program.ClientSecret);
                        string         JSON           = b2CGraphClient.SearchUserByDisplayName(args[1]).Result;

                        Console.WriteLine(JSON);
                        GraphAccounts users = GraphAccounts.Parse(JSON);
                    }
                    else
                    {
                        Console.WriteLine("Display name parameter is missing");
                    }
                    break;

                case "5":
                    UserMigrationCleanupAsync().Wait();
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                if (ex.InnerException != null)
                {
                    Console.WriteLine(ex.InnerException.Message);
                }
                else
                {
                    Console.WriteLine(ex.Message);
                }
            }
            finally
            {
                Console.ResetColor();
            }

            Console.ReadLine();
        }
Beispiel #4
0
        static async Task Main(string[] args)
        {
            var tenantName    = "";
            var applicationId = "";
            var clientSecret  = "";

            var storageName = "";
            var storagekey  = "";

            var b2cGraphClient = new B2CGraphClient(tenantName, applicationId, clientSecret);

            var response = await b2cGraphClient.GetAllUsersAsync();

            var accounts = GraphAccounts.Parse(response);

            CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials(storageName, storagekey), true);

            //Client
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            //Table
            CloudTable table = tableClient.GetTableReference("Ticket");

            TableQuery <TicketTableEntity> query = new TableQuery <TicketTableEntity>();

            List <TicketTableEntity> results           = new List <TicketTableEntity>();
            TableContinuationToken   continuationToken = null;

            do
            {
                TableQuerySegment <TicketTableEntity> queryResults =
                    await table.ExecuteQuerySegmentedAsync(query, continuationToken);

                continuationToken = queryResults.ContinuationToken;
                results.AddRange(queryResults.Results);
            } while (continuationToken != null);

            using (var textWriter = new StreamWriter("accounts.csv"))
            {
                var csv = new CsvWriter(textWriter);

                csv.WriteHeader <CsvItem>();
                csv.NextRecord();

                foreach (var account in accounts.value)
                {
                    var tickets = results.Where(x => x.AttendeeId == account.Id);

                    if (tickets.Count() == 0)
                    {
                        var item = new CsvItem
                        {
                            Id        = account.Id,
                            Email     = account.OtherMails.FirstOrDefault(),
                            FirstName = account.GivenName,
                            LastName  = account.Surname,
                        };
                        csv.WriteRecord(item);
                        csv.NextRecord();
                    }

                    foreach (var ticket in tickets)
                    {
                        var item = new CsvItem
                        {
                            Id          = account.Id,
                            Email       = account.OtherMails.FirstOrDefault(),
                            FirstName   = account.GivenName,
                            LastName    = account.Surname,
                            TicketType  = ticket.TicketType,
                            CouponCode  = ticket.CouponCode,
                            IsPayed     = ticket.IsPayed,
                            PaymentType = ticket.PaymentType,
                            Price       = ticket.Price,
                            WorkshopId  = ticket.WorkshopId,
                            City        = account.city,
                            Company     = account.extension_d6245cc8578e4908b91662ccd12132e2_Company,
                            JobTitle    = account.jobTitle
                        };

                        csv.WriteRecord(item);
                        csv.NextRecord();
                    }
                }
                csv.Flush();
                csv.Dispose();
            }
        }