2D Convolution in the Spatial Domain vs Frequency Domain
To answer your question:


Can easily be done.
One must remember that the short signal (The Kernel) must be padded (With zeros) to have the same size as the image before the DFT conversion.
Once they have the same size all needed is to convert into the Frequency Domain have element by element multiplication and transform back.
A side note would be that this way you assume periodic boundary condition.
I'm not a C# / C Coder.
I can provide you a MATLAB reference if needed.
Just make sure you do the following steps:


Pad the kernel to the image size (Pad it with zeros to the right and left).
Convert into the Frequency Domain.
Multiply Element by element.
Convert back to the spatial domain.



2 Remarks:


In cases of large image relative to the size of the kernel you better (Efficiency wise) apply it in the spatial domain.
The method above describes to do Circular Convolution (See Applying Image Filtering (Circular Convolution) in Frequency Domain). In order to apply Linear Convolution See How Much Zero Padding Do We Need to Perform Filtering in the Fourier Domain?


Enjoy...