public User(Guid?id, string email, string username, string password, string salt, string birthDate,
                    string fullName, string firstName, string middleName, string lastName, string encryptionScheme,
                    DateTimeOffset?expiry, bool active, string timezone, Guid?cleanSpeakId,
                    Dictionary <string, object> data, bool verified,
                    ContentStatus usernameStatus, TwoFactorDelivery twoFactorDelivery, bool twoFactorEnabled,
                    string twoFactorSecret, Uri imageUrl, params UserRegistration[] registrations)
        {
            this.id                = id;
            this.email             = email;
            this.password          = password;
            this.salt              = salt;
            this.birthDate         = birthDate;
            this.encryptionScheme  = encryptionScheme;
            this.expiry            = expiry;
            this.active            = active;
            this.username          = username;
            this.timezone          = timezone;
            this.fullName          = fullName;
            this.firstName         = firstName;
            this.middleName        = middleName;
            this.lastName          = lastName;
            this.cleanSpeakId      = cleanSpeakId;
            this.verified          = verified;
            this.usernameStatus    = usernameStatus;
            this.twoFactorDelivery = twoFactorDelivery;
            this.twoFactorEnabled  = twoFactorEnabled;
            this.twoFactorSecret   = twoFactorSecret;
            this.imageUrl          = imageUrl;

            for (var i = 0; i < registrations.Length; i++)
            {
                this.registrations.Add(registrations[i]);
            }
        }
 public TwoFactorRequest(string code, string secret, TwoFactorDelivery delivery)
 {
     this.code     = code;
     this.delivery = delivery;
     this.secret   = secret;
 }