Exemplo n.º 1
0
 private AccountConfiguration(Name name, AccountType type, Option <string> password, ValueObjectSet <Permission> permissions)
 {
     Name        = name;
     Type        = type;
     Password    = password;
     Permissions = permissions;
 }
 private ImageFormat(string fileExtension, string mimeType, ValueObjectSet <string> fileExtensions)
 {
     FileExtension  = fileExtension;
     MimeType       = mimeType;
     FileExtensions = fileExtensions;
 }
Exemplo n.º 3
0
        public static Result <AccountConfiguration, Error> New(Name name, AccountType type, Option <string> password, ValueObjectSet <Permission> permissions)
        {
            if (permissions.Count == 0)
            {
                return(Result.Failure(Error.ValidationError("An account requires at least one permission")));
            }

            if (type == AccountType.Anonymous)
            {
                if (password.IsSome)
                {
                    return(Result.Failure(Error.ValidationError("Anonymous account can not have an password")));
                }
                if (name.ToString() != "Anonymous")
                {
                    return(Result.Failure(Error.ValidationError("Anonymous account must be called 'Anonymous'")));
                }
            }

            if (type == AccountType.Basic)
            {
                if (password.IsNone)
                {
                    return(Result.Failure(Error.ValidationError("Basic account must have a password")));
                }

                if (password.UnwrapOrDefault().Length < 4)
                {
                    return(Result.Failure(Error.ValidationError("Password must have a least 4 characters")));
                }
            }

            return(Result.Success(new AccountConfiguration(name, type, password, permissions)));
        }