예제 #1
0
        public async Task SignupAsync()
        {
            EmailAlreadyTaken = await Context.Users.WhereEmail(User.Email).AnyAsync();

            if (!EmailAlreadyTaken)
            {
                User.LastLogin          = DateTime.UtcNow;
                User.Salt               = Guid.NewGuid().ToString("N");
                User.Password           = new Sha256Hash(User.Password, User.Salt).ToString();
                User.LastChangePassword = DateTime.UtcNow;
                User.Tenant             = new Tenant();
                User.Tenant.Owner       = User.Email;
                User.Tenant.CreatedAt   = DateTime.UtcNow;

                ClosureRequest             = new ClosureRequest();
                ClosureRequest.Token       = Guid.NewGuid().ToString("N");
                ClosureRequest.Email       = User.Email;
                ClosureRequest.RequestDate = User.LastLogin;
                ClosureRequest.ExpiryDate  = ClosureRequest.RequestDate
                                             .AddHours(ClosureRequest.ExpiryHours);

                Context.Users.Add(User);
                Context.ClosureRequests.Add(ClosureRequest);

                await Context.SaveChangesAsync();
            }
        }
예제 #2
0
 public SignupEmail(User user, ClosureRequest closureRequest)
 {
     User           = user;
     ClosureRequest = closureRequest;
 }