public static MessageResponse AddUser(DatabaseManager databaseManager, EncryptionHelper encryptionHelper, SignUpRequest request) { if (request == null || request.IsInvalid() || request.User.IsInvalid()) { return(new MessageResponse("Wrong data")); } if (User.GetByEmailFromDB(databaseManager, request.User.Email) != null) { return(new MessageResponse("This email already registered")); } if (request.User.UserType == Database.UserType.ADMIN) { return(new MessageResponse("Security violation")); } if (!request.User.IsVerified) { request.User.VerificationLink = EmailHelper.GetRandomVerificationLink(); try { EmailHelper.SendVerificationEmail(request.User.Email, request.User.VerificationLink); } catch (Exception ex) { return(new MessageResponse(ex.Message)); } } databaseManager.Database.Insert <User>(request.User); Credential credentials = new Credential(); try { credentials.Key = Credential.GetLoginFromName(databaseManager, request.User.Name); } catch (ArgumentException) { return(new MessageResponse("Wrong name format")); } credentials.PasswordHash = encryptionHelper.GetHash(request.Password); databaseManager.Database.Insert <Credential>(credentials); return(new MessageResponse("Registered")); }
public MessageResponse SignUp(SignUpRequest signUpModel) { if (signUpModel == null || signUpModel.IsInvalid() || signUpModel.User.IsInvalid()) { return(new MessageResponse("Wrong data")); } if (Models.Database.User.GetByEmailFromDB(databaseManager, signUpModel.User.Email) != null) { return(new MessageResponse("This email already registered")); } if (signUpModel.User.UserType == UserType.ADMIN) { return(new MessageResponse("Security violation")); } signUpModel.User.IsVerified = false; signUpModel.User.VerificationLink = EmailHelper.GetRandomVerificationLink(); try { EmailHelper.SendVerificationEmail(signUpModel.User.Email, signUpModel.User.VerificationLink); } catch (Exception ex) { return(new MessageResponse(ex.Message)); } databaseManager.Database.Insert <User>(signUpModel.User); Credential credentials = new Credential(); try { credentials.Key = GetLoginFromName(signUpModel.User.Name); } catch (ArgumentException) { return(new MessageResponse("Wrong name format")); } credentials.PasswordHash = encryptionHelper.GetHash(signUpModel.Password); databaseManager.Database.Insert <Credential>(credentials); return(new MessageResponse("Registered")); }