using System.Text; using System.IO.Compression; using System.Globalization; using System.Diagnostics; using MarketData.MarketDataModel; namespace MarketData.Utils { public class Utility { private static DateTime epoch = DateTime.Parse("01-01-0001"); private static TimeSpan oneDay=new TimeSpan(1,0,0,0); private static readonly System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-US"); private static readonly String[] formats = new[] {"dddd, MMMM dd","MMM dd yyyy","yyyy-MM","ddd, MMM. d","ddd, MMM. dd", "yyyy/MM/dd","M-d-yyyy", "dd-MM-yyyy", "MM-dd-yyyy", "M.d.yyyy", "dd.MM.yyyy", "MM.dd.yyyy","yyyyMMdd" }.Union(cultureInfo.DateTimeFormat.GetAllDateTimePatterns()).ToArray(); public static String ToUrl(String prefix, String ipAddress, String postfix) { return prefix + ipAddress + postfix; } public static String Pad(string str, char filler, int length) { int stringLength = str.Length; if (stringLength >= length) return str; StringBuilder sb = new StringBuilder(); while (stringLength < length) { sb.Append(filler); stringLength++; } return sb.ToString() + str; } public static String RemoveHtml(String strItem) { String[] codes = { "'","»" }; if(null==strItem)return strItem; foreach (String code in codes) { strItem = strItem.Replace(code,"'"); } return strItem; // String str=strItem.Replace("'","'"); // return str; } public static String RemoveDivs(String strItem) { StringBuilder sb=new StringBuilder(); bool inDiv=false; if(null==strItem)return strItem; for(int index=0;index'))inDiv=false; else if(!inDiv)sb.Append(ch); } return sb.ToString(); } public static String BetweenString(String strItem, String strBegin, String strEnd) { if (null == strItem) return null; int index=-1; if(null==strBegin)index=0; else index = strItem.IndexOf(strBegin); if (-1 == index) return null; String str = null; if(null!=strBegin)str=strItem.Substring(index + strBegin.Length); else str=strItem; if(null==strEnd)return str; index = str.IndexOf(strEnd); if (-1 == index) return null; StringBuilder sb = new StringBuilder(); for (int strIndex = 0; strIndex < str.Length; strIndex++) { if (index == strIndex) break; sb.Append(str[strIndex]); } return sb.ToString(); } public static String RemoveAfter(String strItem, char charItem) { StringBuilder sb = new StringBuilder(); for (int index = 0; index < strItem.Length; index++) { char ch = strItem[index]; if (ch.Equals(charItem)) break; sb.Append(ch); } return sb.ToString(); } public static bool OutOfRange(double value) { return value > 100000000000000000000.00 || value< -99999999999999999999.99; } public static String RemoveControlChars(String strItem) { StringBuilder sb=new StringBuilder(); for(int index=0;index=1000) { value/=1000; strValue=Utility.FormatNumber(value,places,commas)+"K"; } else if(value>=1000000) { value/=1000000; strValue=Utility.FormatNumber(value,places,commas)+"M"; } else if(value>=1000000000) { value/=1000000000; strValue=Utility.FormatNumber(value,places,commas)+"B"; } else { strValue=Utility.FormatNumber(value,places,commas); } return strValue; } public static String FormatNumber(double number,int places,bool commas=false) { StringBuilder sb = new StringBuilder(); StringBuilder formatString=new StringBuilder(); if (commas&&number>=1000.00) formatString.Append("{0:0,0."); else formatString.Append("{0:0."); for(int index=0;index list,char separator=',') { StringBuilder sb=new StringBuilder(); if (null == list || 0 == list.Count) return null; for(int index=0;index ToList(String items,char separator=',') { List list = items.Split(separator).ToList(); list=(from String s in list select s.Trim()).ToList(); return list; } public static String FromList(List items,String postFix=",") { StringBuilder sb=new StringBuilder(); for(int index=0;index 0) outputStream.Write(decompressedBytesBuffer, 0, count); else break; } decompressionStream.Close(); compressedStream.Close(); String strDecompressed = System.Text.Encoding.UTF8.GetString(outputStream.ToArray()); outputStream.Close(); outputStream = null; compressedStream = null; decompressionStream = null; return strDecompressed; } catch (Exception exception) { MDTrace.WriteLine(LogLevel.DEBUG,exception); return null; } finally { if (null != outputStream) { outputStream.Close(); outputStream = null; } if (null != decompressionStream) { decompressionStream.Close(); decompressionStream = null; } if (null != compressedStream) { compressedStream.Close(); compressedStream = null; } } } public static void LaunchBrowserSearch(String searchTerm) { Process.Start("https://www.google.com/search?q="+Uri.EscapeDataString(searchTerm)+"/"); // OpenWebCommand = new Command(async () => await Browser.OpenAsync("https://www.google.com")); } public static bool IsZeroOrNaN(double value) { return IsNaN(value)||IsZero(value); } private static bool IsZero(double value) { if(value==0.00)return true; return false; } private static bool IsNaN(double value) { return double.IsNaN(value); } public static void DeleteFile(String pathFileName) { if(!File.Exists(pathFileName))return; try{File.Delete(pathFileName);}catch(Exception){;} } private static DateTime GetRunDate(String strPathFileName) { DateTime runDate=DateTime.Now.Date; DateGenerator dateGenerator=new DateGenerator(); StreamWriter streamWriter=null; StreamReader streamReader=null; try { if(!File.Exists(strPathFileName)) { streamWriter=File.CreateText(strPathFileName); streamWriter.WriteLine(Utility.DateTimeToStringMMHDDHYYYY(runDate)); streamWriter.Flush(); streamWriter.Close(); streamWriter=null; return runDate; } streamReader=File.OpenText(strPathFileName); String strLine=streamReader.ReadLine(); streamReader.Close(); streamReader=null; runDate=Utility.ParseDate(strLine); if(dateGenerator.DaysBetweenActual(runDate,DateTime.Now)>5) { File.Delete(strPathFileName); runDate=DateTime.Now.Date; streamWriter=File.CreateText(strPathFileName); streamWriter.WriteLine(Utility.DateTimeToStringMMHDDHYYYY(runDate)); streamWriter.Flush(); streamWriter.Close(); streamWriter=null; return runDate; } return runDate; } catch(Exception exception) { MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetRunDate:{0}",exception.ToString())); return runDate; } finally { if(null!=streamWriter)streamWriter.Close(); if(null!=streamReader)streamReader.Close(); } } } }