/// <summary>
        /// Register
        /// </summary>
        /// <param name="user">Model User</param>
        /// <param name="password">Password</param>
        public async Task <User> Register(User user, string password)
        {
            user.Created = DateTime.Now;
            byte[]           passwordHash, passwordSalt;
            PasswordGenerate passwordGenerate = new PasswordGenerate();

            passwordGenerate.CreatePasswordHash(password, out passwordHash, out passwordSalt);
            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;
            await _context.Users.AddAsync(user);

            await _context.SaveChangesAsync();

            return(user);
        }
        /// <summary>
        /// Seed User
        /// </summary>
        /// <remarks>
        /// Code in comment don't compile, so the solution for unique data is comment this method in Startup.cs
        /// </remarks>
        public void SeedUsers()
        {
            var userData = System.IO.File.ReadAllText("Data/Seed/UsersSeedData.json");
            var users    = JsonConvert.DeserializeObject <List <User> >(userData);

            foreach (var user in users)
            {
                if (!_context.Users.Any(x => x.Username == user.Username))
                {
                    PasswordGenerate passwordGenerate = new PasswordGenerate();
                    passwordGenerate.CreatePasswordHash("password", out byte[] passwordHash, out byte[] passwordSalt);

                    user.PasswordHash = passwordHash;
                    user.PasswordSalt = passwordSalt;
                    user.Username     = user.Username.ToLower();

                    _context.Users.Add(user);
                }
            }
            _context.SaveChanges();
        }