public async Task <IActionResult> AddUser([FromBody] RegisterViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await userManager.FindByEmailAsync(model.Username);

                    if (user == null)
                    {
                        user = new LotteryGeniusUser()
                        {
                            UserName  = model.Username,
                            Email     = model.Username,
                            FirstName = model.FirstName,
                            LastName  = model.LastName
                        };

                        var userResult = await userManager.CreateAsync(user, model.LastName + DateTime.Now.Year + "!");

                        if (userResult == IdentityResult.Success)
                        {
                            await userManager.AddToRoleAsync(user, model.Role);

                            user.initialLogin = true;
                            _ctx.SaveChanges();

                            var webRoot    = this.env.WebRootPath;
                            var pathToFile = this.env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates"
                                             + Path.DirectorySeparatorChar.ToString() + "lottonewuser_email.html";
                            var builder = new BodyBuilder();

                            using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
                            {
                                builder.HtmlBody = SourceReader.ReadToEnd();
                            }

                            string messageBody = builder.HtmlBody;
                            messageBody = messageBody.Replace("{user}", $"{model.FirstName} {model.LastName}")
                                          .Replace("{username}", $"{model.Username}").Replace("{password}", $"{model.LastName + DateTime.Now.Year}!").Replace("{url}", $"{this.config["WebsiteOrigin"]}/Home/EmailVerification/?email={model.Username}");

                            await _emailSender.SendEmailAsync(user.Email, "Email Verification", messageBody);

                            return(Ok());
                        }
                    }
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(BadRequest("Failed to save user data"));
        }
        public async Task Seed()
        {
            _ctx.Database.EnsureCreated();
            string[] roles = { "Admin", "Viewer", "Editor" };

            foreach (var role in roles)
            {
                var roleExist = await _roleManager.RoleExistsAsync(role);

                if (!roleExist)
                {
                    await _roleManager.CreateAsync(new IdentityRole <int>(role));
                }
            }

            ////Add Admin user
            var user = await _userManager.FindByEmailAsync("*****@*****.**");

            if (user == null)
            {
                user = new LotteryGeniusUser()
                {
                    UserName  = "******",
                    Email     = "*****@*****.**",
                    FirstName = "Anthony",
                    LastName  = "Wright"
                };

                var result = await _userManager.CreateAsync(user, "War3agle!");

                if (result != IdentityResult.Success)
                {
                    throw new InvalidOperationException("Failed to create default user");
                }
                else
                {
                    await _userManager.AddToRoleAsync(user, "Admin");
                }
            }
            //// End Add Admin User
        }