I think this method:
RemoveSpecialCharacters(string str)
can
RemoveSpecialCharacters(string str)
can be replaced by:
Regex.Replace(input, @"[^.\w]",string.Empty)
it
Regex.Replace(input, @"[^.\w]",string.Empty)
It will be better and you don'twon't need to create special method )).