Brute-force-like solution to Project Euler Problem 5
The main problem with your code is that it's very hard to understand. 

First of all, I'd expect GetSmallestMultiple(10) to return 10. After all, the smallest multiple of 10 is 10, right? That's how your code reads, when it's not really what you want to do. Maybe your signature should look something more like this : 

public long GetSmallestCommonMultiple(IEnumerable&lt;int&gt; multiples)


This way, your code reads : 

SmallestMultiple.GetSmallestCommonMultiple(Enumerable.Range(1,10));


Now I'd expect 2520 as an answer.

The thing with algorithms is that they can indeed be hard to read, even if it's just a brute force. To counter this, you need strong variable names and a logical flow in your algorithm. (Meaning that just by reading the code I can understand clearly every step of the algorithm)

For example, the code below, if I got it correctly, will find one common multiple (probably not the smallest one) of the multiples. Meaning that, for multiple = 10, we'd have : 10*9*8*7*6

for (int i = maxNumber; i &gt;= 1; i--)
{
    long modulo = num % i;
    if (modulo &gt; 0)
    {
        num *= i;
    }
}


Using the signature I explained at the beginning, we'd get something like that

long commonMultiple = 1;
foreach(var multiple in multiples)
    if(commonMultiple % multiple &gt; 0)
        commonMultiple *= multiple;


Is it much clearer? Nope. What could we do to make it better? Nothing much, right? In such situations, add comments is a good thing to do.

Basically, I think you need to think of better variable names and try to make the algorithm more apparent in your code, now it's kind of hidden behind your code. I know this sounds weird, but usually you should be able to read code once or twice and get what the algorithm does. Now, I can't. I know what you're doing because I know what method you employed, but if I was to read this without barely no mathematic background I'd struggle to understand what's happening.