Expand|Select|Wrap|Line Numbers
- User.cs:
- [Table("Users")]
- public class User
- {
- [Display(AutoGenerateField = false)]
- public int UserId { get; set; }
- [Display(Name = "UserName")]
- [Required(ErrorMessage = "UserName is required.")]
- public string UserName { get; set; }
- [Display(Name = "Password")]
- [Required]
- [MinLength(8, ErrorMessage = "password must be atleast 8 characters")]
- [DataType(DataType.Password)]
- public string Password { get; set; }
- [Display(Name = "Email")]
- [Required(ErrorMessage = "Email is required.")]
- public string Email { get; set; }
- [Display(Name = "Company")]
- [StringLength(255)]
- [Required(ErrorMessage = "Company is required.")]
- [Remote("doesCompanyExist", "Company", HttpMethod = "POST", ErrorMessage = "Company already exists. Please enter a different company.")]
- public string Company { get; set; }
- public User GetRegisteredUser()
- {
- return new User
- {
- UserName = UserName,
- Password = Password,
- Email = Email,
- Company = Company,
- };
- }
- }
- AppDbContext.cs:
- public class AppDbContext : DbContext
- {
- public AppDbContext()
- {
- }
- public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
- {
- }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- if (!optionsBuilder.IsConfigured)
- {
- optionsBuilder.UseSqlServer("Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=testblazor;Integrated Security=True;");
- }
- }
- //protected override void OnModelCreating(ModelBuilder modelBuilder)
- //{
- // base.OnModelCreating(modelBuilder);
- // modelBuilder.Entity<User>()
- //}
- public DbSet<User> User { get; set; }
- public DbSet<Item> Items { get; set; }
- }
- Register.razor:
- @page "/register"
- @using TestBlazor.Models
- <br />
- <br />
- <h3><b>Register</b></h3>
- <br />
- <EditForm class="needs-validation" Model="@_user" OnValidSubmit="@HandleValidSubmit" OnInvalidSubmit="@HandleInvalidSubmit">
- <div class="alert @StatusClass">@StatusMessage</div>
- <DataAnnotationsValidator />
- <ValidationSummary />
- <div class="form-group">
- <p><b>User name</b></p>
- <input id="username" class="solid" name="username" placeholder="Your username.." @bind-value="_user.UserName" />
- <ValidationMessage For="@(() => @_user.UserName)"></ValidationMessage>
- </div>
- <div class="form-group">
- <p><b>Password</b></p>
- <input type="password" class="solid" id="password" placeholder="Your password.." @bind-value="_user.Password" />
- <ValidationMessage For="@(() => @_user.Password)"></ValidationMessage>
- </div>
- <div class="form-group">
- <p><b>Email</b></p>
- <input id="email" class="solid" placeholder="you@example.com" @bind-value="_user.Email" />
- <ValidationMessage For="@(() => @_user.Email)"></ValidationMessage>
- </div>
- <div class="form-group">
- <p><b>Company</b></p>
- <input id="company" class="solid" placeholder="Your company.." @bind-value="_user.Company" />
- <ValidationMessage For="@(() => @_user.Company)"></ValidationMessage>
- </div>
- <br />
- <button disabled="@loading" class="btn btn-primary">
- @if (loading)
- {
- <span class="spinner-border spinner-border-sm mr-1"></span>
- <NavLink href="/login" class="btn btn-link">Register</NavLink>
- }
- Register
- </button>
- <NavLink href="/login" class="btn btn-link">Login</NavLink>
- </EditForm>
- @code {
- private User _user = new User();
- private string StatusMessage;
- private string StatusClass;
- private bool loading;
- private void OnValidSubmit()
- {
- if (loading == true)
- {
- Console.WriteLine("You have successfully registered!");
- }
- else
- {
- loading = false;
- Console.WriteLine("Check your information again!");
- }
- }
- protected void HandleValidSubmit()
- {
- StatusClass = "alert-info";
- StatusMessage = " You have successfully registered! Please click the Login button to log in!";
- }
- protected void HandleInvalidSubmit()
- {
- StatusClass = "alert-danger";
- StatusMessage = " Check your information again!";
- }
- public bool doesCompanyExist(string Company)
- {
- try
- {
- if (Company != null)
- {
- return true;
- }
- }
- catch (Exception)
- {
- return false;
- }
- return false;
- }
- }