")
// // .Replace("", "
");
//}
private static readonly Dictionary MIMETypesDictionary = new Dictionary
{
{"ai", "application/postscript"},
{"aif", "audio/x-aiff"},
{"aifc", "audio/x-aiff"},
{"aiff", "audio/x-aiff"},
{"asc", "text/plain"},
{"atom", "application/atom+xml"},
{"au", "audio/basic"},
{"avi", "video/x-msvideo"},
{"bcpio", "application/x-bcpio"},
{"bin", "application/octet-stream"},
{"bmp", "image/bmp"},
{"cdf", "application/x-netcdf"},
{"cgm", "image/cgm"},
{"class", "application/octet-stream"},
{"cpio", "application/x-cpio"},
{"cpt", "application/mac-compactpro"},
{"csh", "application/x-csh"},
{"css", "text/css"},
{"dcr", "application/x-director"},
{"dif", "video/x-dv"},
{"dir", "application/x-director"},
{"djv", "image/vnd.djvu"},
{"djvu", "image/vnd.djvu"},
{"dll", "application/octet-stream"},
{"dmg", "application/octet-stream"},
{"dms", "application/octet-stream"},
{"doc", "application/msword"},
{"docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"},
{"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"},
{"docm","application/vnd.ms-word.document.macroEnabled.12"},
{"dotm","application/vnd.ms-word.template.macroEnabled.12"},
{"dtd", "application/xml-dtd"},
{"dv", "video/x-dv"},
{"dvi", "application/x-dvi"},
{"dxr", "application/x-director"},
{"eps", "application/postscript"},
{"etx", "text/x-setext"},
{"exe", "application/octet-stream"},
{"ez", "application/andrew-inset"},
{"gif", "image/gif"},
{"gram", "application/srgs"},
{"grxml", "application/srgs+xml"},
{"gtar", "application/x-gtar"},
{"hdf", "application/x-hdf"},
{"hqx", "application/mac-binhex40"},
{"htm", "text/html"},
{"html", "text/html"},
{"ice", "x-conference/x-cooltalk"},
{"ico", "image/x-icon"},
{"ics", "text/calendar"},
{"ief", "image/ief"},
{"ifb", "text/calendar"},
{"iges", "model/iges"},
{"igs", "model/iges"},
{"jnlp", "application/x-java-jnlp-file"},
{"jp2", "image/jp2"},
{"jpe", "image/jpeg"},
{"jpeg", "image/jpeg"},
{"jpg", "image/jpeg"},
{"js", "application/x-javascript"},
{"kar", "audio/midi"},
{"latex", "application/x-latex"},
{"lha", "application/octet-stream"},
{"lzh", "application/octet-stream"},
{"m3u", "audio/x-mpegurl"},
{"m4a", "audio/mp4a-latm"},
{"m4b", "audio/mp4a-latm"},
{"m4p", "audio/mp4a-latm"},
{"m4u", "video/vnd.mpegurl"},
{"m4v", "video/x-m4v"},
{"mac", "image/x-macpaint"},
{"man", "application/x-troff-man"},
{"mathml", "application/mathml+xml"},
{"me", "application/x-troff-me"},
{"mesh", "model/mesh"},
{"mid", "audio/midi"},
{"midi", "audio/midi"},
{"mif", "application/vnd.mif"},
{"mov", "video/quicktime"},
{"movie", "video/x-sgi-movie"},
{"mp2", "audio/mpeg"},
{"mp3", "audio/mpeg"},
{"mp4", "video/mp4"},
{"mpe", "video/mpeg"},
{"mpeg", "video/mpeg"},
{"mpg", "video/mpeg"},
{"mpga", "audio/mpeg"},
{"ms", "application/x-troff-ms"},
{"msh", "model/mesh"},
{"mxu", "video/vnd.mpegurl"},
{"nc", "application/x-netcdf"},
{"oda", "application/oda"},
{"ogg", "application/ogg"},
{"pbm", "image/x-portable-bitmap"},
{"pct", "image/pict"},
{"pdb", "chemical/x-pdb"},
{"pdf", "application/pdf"},
{"pgm", "image/x-portable-graymap"},
{"pgn", "application/x-chess-pgn"},
{"pic", "image/pict"},
{"pict", "image/pict"},
{"png", "image/png"},
{"pnm", "image/x-portable-anymap"},
{"pnt", "image/x-macpaint"},
{"pntg", "image/x-macpaint"},
{"ppm", "image/x-portable-pixmap"},
{"ppt", "application/vnd.ms-powerpoint"},
{"pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"},
{"potx","application/vnd.openxmlformats-officedocument.presentationml.template"},
{"ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"},
{"ppam","application/vnd.ms-powerpoint.addin.macroEnabled.12"},
{"pptm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"},
{"potm","application/vnd.ms-powerpoint.template.macroEnabled.12"},
{"ppsm","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"},
{"ps", "application/postscript"},
{"qt", "video/quicktime"},
{"qti", "image/x-quicktime"},
{"qtif", "image/x-quicktime"},
{"ra", "audio/x-pn-realaudio"},
{"ram", "audio/x-pn-realaudio"},
{"ras", "image/x-cmu-raster"},
{"rdf", "application/rdf+xml"},
{"rgb", "image/x-rgb"},
{"rm", "application/vnd.rn-realmedia"},
{"roff", "application/x-troff"},
{"rtf", "text/rtf"},
{"rtx", "text/richtext"},
{"sgm", "text/sgml"},
{"sgml", "text/sgml"},
{"sh", "application/x-sh"},
{"shar", "application/x-shar"},
{"silo", "model/mesh"},
{"sit", "application/x-stuffit"},
{"skd", "application/x-koan"},
{"skm", "application/x-koan"},
{"skp", "application/x-koan"},
{"skt", "application/x-koan"},
{"smi", "application/smil"},
{"smil", "application/smil"},
{"snd", "audio/basic"},
{"so", "application/octet-stream"},
{"spl", "application/x-futuresplash"},
{"src", "application/x-wais-source"},
{"sv4cpio", "application/x-sv4cpio"},
{"sv4crc", "application/x-sv4crc"},
{"svg", "image/svg+xml"},
{"swf", "application/x-shockwave-flash"},
{"t", "application/x-troff"},
{"tar", "application/x-tar"},
{"tcl", "application/x-tcl"},
{"tex", "application/x-tex"},
{"texi", "application/x-texinfo"},
{"texinfo", "application/x-texinfo"},
{"tif", "image/tiff"},
{"tiff", "image/tiff"},
{"tr", "application/x-troff"},
{"tsv", "text/tab-separated-values"},
{"txt", "text/plain"},
{"ustar", "application/x-ustar"},
{"vcd", "application/x-cdlink"},
{"vrml", "model/vrml"},
{"vxml", "application/voicexml+xml"},
{"wav", "audio/x-wav"},
{"wbmp", "image/vnd.wap.wbmp"},
{"wbmxl", "application/vnd.wap.wbxml"},
{"wml", "text/vnd.wap.wml"},
{"wmlc", "application/vnd.wap.wmlc"},
{"wmls", "text/vnd.wap.wmlscript"},
{"wmlsc", "application/vnd.wap.wmlscriptc"},
{"wrl", "model/vrml"},
{"xbm", "image/x-xbitmap"},
{"xht", "application/xhtml+xml"},
{"xhtml", "application/xhtml+xml"},
{"xls", "application/vnd.ms-excel"},
{"xml", "application/xml"},
{"xpm", "image/x-xpixmap"},
{"xsl", "application/xml"},
{"xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
{"xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"},
{"xlsm","application/vnd.ms-excel.sheet.macroEnabled.12"},
{"xltm","application/vnd.ms-excel.template.macroEnabled.12"},
{"xlam","application/vnd.ms-excel.addin.macroEnabled.12"},
{"xlsb","application/vnd.ms-excel.sheet.binary.macroEnabled.12"},
{"xslt", "application/xslt+xml"},
{"xul", "application/vnd.mozilla.xul+xml"},
{"xwd", "image/x-xwindowdump"},
{"xyz", "chemical/x-xyz"},
{"zip", "application/zip"}
};
public static string GetMimeType(this string fileName)
{
//get file extension
string extension = Path.GetExtension(fileName).ToLowerInvariant();
if (extension.Length > 0 &&
MIMETypesDictionary.ContainsKey(extension.Remove(0, 1)))
{
return MIMETypesDictionary[extension.Remove(0, 1)];
}
return "unknown/unknown";
}
public static string AddPrifixIsNotEmpty(this string input, string prefix)
{
if (!input.IsNullOrEmpty()) return "{0}{1}".ApplyFormat(prefix, input);
return string.Empty;
}
public static string AddPrifixIsNotEmpty(this string input, string prefix,int count)
{
if (input.IsNullOrEmpty()) return string.Empty;
StringBuilder builder = new StringBuilder();
for(int i=0;i < count; i++) builder.Append(prefix);
return "{0}{1}".ApplyFormat(builder.ToString(), input);
}
public static string AddSufixIsNotEmpty(this string input, string sufix)
{
if (!input.IsNullOrEmpty()) return "{1}{0}".ApplyFormat(sufix, input);
return string.Empty;
}
public static byte TryParseToByte(this string input, byte defaultValue)
{
byte result;
if (byte.TryParse(input, out result)) return result;
return defaultValue;
}
public static Decimal? TryParseToDecimalNulable(this string input)
{
Decimal decimalValue = 0;
if (!Decimal.TryParse(input, out decimalValue)) return null;
return decimalValue;
}
public static Double? TryParseToDoubleNulable(this string input)
{
Double decimalValue = 0;
if (!Double.TryParse(input, out decimalValue)) return null;
return decimalValue;
}
public static decimal GetValueDecimal(this string input)
{
decimal value;
if (decimal.TryParse(input, NumberStyles.Any, ci.NumberFormat, out value))
return value;
return decimal.MinValue;
}
public static Guid TryParseToGuid(this string value, Guid defaultValue)
{
Guid td;
if (Guid.TryParse(value, out td)) return td;
return defaultValue;
}
public static Guid? TryParseToGuidNulable(this string value, Guid? defaultValue)
{
Guid td;
if (Guid.TryParse(value, out td)) return td;
return defaultValue;
}
public static DateTime TryParseToDateXMLNullable(this string value, DateTime defaultValue)
{
if (value.IsNullOrEmpty()) return defaultValue;
var collections = value.ParseToSplitCollection('T');
if (collections.Count() == 1)
{
collections = collections.AddToNewList("00:00:00");
}
var dtvalues = collections.FirstOrDefault().ParseToInt32Collection("-").ToArray();
var timevalues = collections.LastOrDefault().ParseToInt32Collection(":").ToArray();
DateTime dt = DateTime.MaxValue;
if (dtvalues.Count() == 3)
{
try
{
defaultValue = new DateTime(dtvalues[0], dtvalues[1], dtvalues[2], timevalues[0], timevalues[1], timevalues[2]);
}
catch (Exception) { }
}
return defaultValue;
}
public static DateTime? TryParseToDateXMLNullable(this string value)
{
var result = value.TryParseToDateXMLNullable(DateTime.MinValue);
if (result == DateTime.MinValue) return null;
return result;
}
public static string GetShortFIO(this string value)
{
string result = "";
if (value == null || value.Trim() == "")
return result;
string[] arrayString = value.Split(' ');
for (int i = 0; i < arrayString.Length; i++)
{
if (i == 0)
{
result = arrayString[i];
}
else
{
result += " " + arrayString[i].ToUpper().FirstOrDefault() + ".";
}
}
return result;
}
public static string GetDigit(this string value)
{
return string.Join("", value.Where(c => char.IsDigit(c))); ;
}
public static string GZipCompress(this string s, CompressionMode mode, Encoding encoding)
{
if (mode == CompressionMode.Compress)
{
using (var outputStream = new MemoryStream())
{
using (var compressionStream = new GZipStream(outputStream, CompressionMode.Compress))
using (var inputStream = new MemoryStream(encoding.GetBytes(s)))
inputStream.CopyTo(compressionStream);
return System.Convert.ToBase64String(outputStream.ToArray());
}
}
else
{
using (var outputStream = new MemoryStream())
{
using (var inputStream = new MemoryStream(System.Convert.FromBase64String(s)))
using (var compressionStream = new GZipStream(inputStream, mode))
compressionStream.CopyTo(outputStream);
return encoding.GetString(outputStream.ToArray());
}
}
}
public static string ReadFileTextToEnd(this string fileName)
{
var reader = new StreamReader(fileName);
return reader.ReadToEnd();
}
public static void WriteText(this string fileName, string text)
{
using (StreamWriter writer = new StreamWriter(fileName))
{
writer.Write(text);
}
}
public static string GetMD5Hash(this string value)
{
byte[] hash = Encoding.UTF8.GetBytes(value);
MD5 md5 = new MD5CryptoServiceProvider();
string hashenc = Encoding.UTF8.GetString(md5.ComputeHash(hash));
return hashenc;
}
public static string ToKeyHashMD5(this string value,int size = 256)
{
string hash = value.GetMD5Hash();
string trans = value.TranslitToEnglish();
string result = trans;
if (trans.Length > size)
{
result = trans.Substring(0, (size - hash.Length - 1)) + "_" + hash;
}
return result;
}
public static string ToKeyHash(this string value, int size = 256)
{
string hash = value.GetHashString();
string trans = value.TranslitToEnglish();
string result = trans;
if (trans.Length > size)
{
result = trans.Substring(0, (size - hash.Length - 1)) + "_" + hash;
}
return result;
}
public static byte[] GetHash(this string inputString)
{
using (HashAlgorithm algorithm = SHA256.Create())
return algorithm.ComputeHash(Encoding.UTF8.GetBytes(inputString));
}
public static string GetHashString(this string inputString)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in GetHash(inputString))
sb.Append(b.ToString("X2"));
return sb.ToString();
}
public static string ServerMapPath(this string virtualPath)
{
if (virtualPath.StartsWith("~/") == false)
{
return virtualPath;
}
string result = Environment.CurrentDirectory;
virtualPath = virtualPath.Remove("~/");
string[] directories = virtualPath.Split('/');
foreach (string directory in directories)
{
result = Path.Combine(result, directory);
}
return result;
}
public static string CreateSQLiteConnectionString(this string filePath, string mode = "ReadWrite")
{
return $"Data Source={filePath};Mode={mode};";
}
}
}