public Game StatusLong() { Game game = new Game(); game.Board = BoggleBoard.ToString(); game.TimeLimit = TimeLimit; game.Player1 = Player1.ActiveLongUser(); game.Player2 = Player2.ActiveLongUser(); int left = (int)(StartTime.AddSeconds((double)TimeLimit) - DateTime.Now).TotalSeconds; if (GameState == "completed" || left <= 0) { TimeLeft = 0; GameState = "completed"; game.Player1 = Player1.CompletedLongUser(); game.Player2 = Player2.CompletedLongUser(); } else { TimeLeft = left; } game.TimeLeft = TimeLeft; game.GameState = GameState; return(game); }
public Hashtable GetSecondsPerHour(int timezoneOffset) { int startHour = StartTime.Hour; DateTime endTime = StartTime.AddSeconds(Seconds); int endHour = endTime.Hour; Hashtable result = new Hashtable(); for (int i = startHour; i <= endHour; i++) { int seconds = 3600; if (i == endHour) { seconds = endTime.Minute * 60 + endTime.Second; } if (i == startHour) { seconds = seconds - StartTime.Minute * 60 - StartTime.Second; } int adjustedHour = i + timezoneOffset; if (adjustedHour < 0) { adjustedHour = 24 - adjustedHour; } if (adjustedHour > 23) { adjustedHour = adjustedHour - 24; } result.Add(adjustedHour, seconds); } return(result); }
/// <summary> /// Gets the time at a certain index /// </summary> /// <param name="index"></param> /// <returns></returns> public DateTime GetTime(int index) { switch (TimeStepSize) { case TimeStepUnit.Year: return(StartTime.AddYears(TimeStepMultiplier * index)); case TimeStepUnit.Month: return(StartTime.AddMonths(TimeStepMultiplier * index)); case TimeStepUnit.Day: return(StartTime.AddDays(TimeStepMultiplier * index)); case TimeStepUnit.Hour: return(StartTime.AddHours(TimeStepMultiplier * index)); case TimeStepUnit.Minute: return(StartTime.AddMinutes(TimeStepMultiplier * index)); case TimeStepUnit.Second: return(StartTime.AddSeconds(TimeStepMultiplier * index)); case TimeStepUnit.None: default: return(DateTime.MinValue); } }
public bool CanExcute() { DateTime nowtime = DateTime.Now; if (nowtime < StartTime || nowtime > EndTime) { return(false); } if (Type == PlanType.Once) { if (excuteTimes == 0) { return(true); } } else { DateTime preTime = StartTime.AddSeconds(excuteTimes * Interval); int totalhours = (int)Math.Floor((nowtime - preTime).TotalSeconds); if (totalhours >= 1) { return(true); } } return(false); }
public IntervalSyncFrequency() { Name = "Interval"; Hours = 1; Minutes = 0; StartTime = DateTime.Now; StartTime = StartTime.AddSeconds(-StartTime.Second); }
internal SipAddressBinding(string aor, IPEndPoint host, int cSeq, string callId, int expires) { AddressOfRecord = aor; Host = host; CSeq = cSeq; CallId = callId; StartTime = DateTime.Now; EndTime = StartTime.AddSeconds(expires); Expires = expires; }
public bool IsOnRec(int MarginMin = 0) { int StartMargin = RecSetting.GetTrueMargin(true) + 60 * MarginMin; int EndMargin = RecSetting.GetTrueMargin(false); DateTime startTime = StartTime.AddSeconds(StartMargin * -1); int duration = (int)DurationSecond + StartMargin + EndMargin; return(CtrlCmdDefEx.isOnTime(startTime, duration)); }
/// <summary> /// Сохранить этапы /// </summary> /// <param name="doc">Докумен в который выполнять сохранение этапов</param> /// <returns>Узел в котором сохранены этапы работы</returns> public XmlNode Serialize(XmlDocument doc) { try { XmlNode root = doc.CreateElement(rootName); XmlNode numberNode = doc.CreateElement(numberName); XmlNode data_beginNode = doc.CreateElement(data_beginName); XmlNode data_endNode = doc.CreateElement(data_endName); XmlNode name_stgNode = doc.CreateElement(name_stgName); XmlNode volume_stgNode = doc.CreateElement(volume_stgName); XmlNode volume_allNode = doc.CreateElement(volume_allName); XmlNode const_volNode = doc.CreateElement(const_volName); XmlNode const_sumNode = doc.CreateElement(const_sumName); numberNode.InnerText = number.ToString(); data_beginNode.InnerText = StartTime.AddSeconds(3).ToString(); if (State == StageState.Finished) { data_endNode.InnerText = FinishedTime.ToString(); } volume_stgNode.InnerText = Volume.ToString(); volume_allNode.InnerText = ProccessVolume.ToString(); const_volNode.InnerText = constVolume.ToString(); const_sumNode.InnerText = TotalVolume.ToString(); name_stgNode.InnerText = name_stg; root.AppendChild(numberNode); root.AppendChild(data_beginNode); root.AppendChild(data_endNode); root.AppendChild(name_stgNode); root.AppendChild(volume_stgNode); root.AppendChild(volume_allNode); root.AppendChild(const_volNode); root.AppendChild(const_sumNode); return(root); } catch { } return(null); }
/// <summary> /// Creates a new instance /// </summary> public BacktestingResultHandler() { ResamplePeriod = TimeSpan.FromMinutes(4); NotificationPeriod = TimeSpan.FromSeconds(2); _chartSeriesExceededDataPoints = new HashSet <string>(); // Delay uploading first packet _nextS3Update = StartTime.AddSeconds(30); //Default charts: Charts.AddOrUpdate("Strategy Equity", new Chart("Strategy Equity")); Charts["Strategy Equity"].Series.Add("Equity", new Series("Equity", SeriesType.Candle, 0, "$")); Charts["Strategy Equity"].Series.Add("Daily Performance", new Series("Daily Performance", SeriesType.Bar, 1, "%")); }
public HackOrder(int from, int to, int endTime, int variable, int conditional, int iterator, int json, int _class, int breakpoint, int type, int knowledge, int ingenyous, int coffe, string newIp) { From = from; To = to; StartTime = DateTime.Now; EndTime = StartTime.AddSeconds(endTime); ReturnTime = EndTime.AddSeconds(endTime); Variable = variable; Conditional = conditional; Iterator = iterator; Json = json; Class = _class; BreakPoint = breakpoint; Type = type; Knowledge = knowledge; Ingenyous = ingenyous; Coffee = coffe; IsReturn = false; NewIp = newIp; }
/// <summary> /// Build video url /// </summary> /// <returns></returns> protected string BuildVideoUrl() { if (TransBegin.Equals(DBNull.Value) || TransEnd.Equals(DBNull.Value)) { return(string.Empty); } string urlFormat = "{0}?t1={1:yyyyMMdd-HHmmss}&t2={2:yyyyMMdd-HHmmss}&speed={3}"; string NVRSeverIP = CommonDictionary4Monitor.DataSource.cf_station.FirstOrDefault().VIDEO_SERVER_IP.ToString(); int NVRServerPort = CommonDictionary4Monitor.DataSource.cf_station.FirstOrDefault().VIDEO_SERVER_PORT.ConvertToInt(); // Quân edit 01-10-2015 // comment đoạn này vì cú pháp rtsp để xem video playback hiện tại là rtsp://nvrip:nvrport/ipcamera?t1=&t2=&speed=1 //string urlVideo = string.Format("rtsp://{0}{1}/{2}{3}", DBOption.NVRServerID, DBOption.NVRServerPort > 0 ? (":"+ DBOption.NVRServerPort) : string.Empty, IPCamera, PortCamera > 0 ? (":"+ PortCamera) : string.Empty); string urlVideo = string.Format("rtsp://{0}{1}/{2}{3}", NVRSeverIP, NVRServerPort > 0 ? (":" + NVRServerPort) : string.Empty, IPCamera, string.Empty); // Teardown video hiện tại, streaming video mới với thời gian bằng thời gian bắt đầu và thời gian đã phát //return "rtsp://192.168.6.150:8888:8554/192.168.7.61?t1=20140727-103700&t2=20140727-104700&speed=1"; //rtsp://192.168.6.150:8888:8554/192.168.7.61?t1=20140727-101700&t2=20140727-104700&speed=1 DateTime EndTime = TransEnd; Console.WriteLine(string.Format(urlFormat, urlVideo, StartTime.AddSeconds(-15), EndTime.AddSeconds(15), Speed)); return(string.Format(urlFormat, urlVideo, StartTime.AddSeconds(-15), EndTime.AddSeconds(15), Speed)); //return string.Format(urlFormat, urlVideo, StartTime, TransactionRow.TRANS_END, Speed); // tạm thời cho lùi lại 30s cho tất cả các transaction }
public Game BriefGame() { Game game = new Game(); int left = (int)(StartTime.AddSeconds((double)TimeLimit) - DateTime.Now).TotalSeconds; if (GameState == "completed" || left <= 0) { TimeLeft = 0; GameState = "completed"; } else { TimeLeft = left; } game.Board = null; game.TimeLeft = TimeLeft; game.GameState = GameState; game.Player1 = Player1.BriefUser(); game.Player2 = Player2.BriefUser(); return(game); }
/// <summary> /// Checks an individual site and returns a new HttpRequestData object /// </summary> /// <param name="reqData"></param> /// <returns></returns> public HttpRequestData CheckSite(HttpRequestData reqData) { if (CancelThreads) { return(null); } // create a new instance var result = HttpRequestData.Copy(reqData); result.ErrorMessage = "Request is incomplete"; // assume not going to make it result.IsWarmupRequest = StartTime.AddSeconds(Options.WarmupSeconds) > DateTime.UtcNow; try { var client = new HttpClient(); if (!string.IsNullOrEmpty(Options.ReplaceDomain)) { result.Url = ReplaceDomain(result.Url); } if (!string.IsNullOrEmpty(Options.ReplaceQueryStringValuePairs)) { result.Url = ReplaceQueryStringValuePairs(result.Url, Options.ReplaceQueryStringValuePairs); } foreach (var plugin in App.Plugins) { try { if (!plugin.OnBeforeRequestSent(result)) { return(result); } } catch (Exception ex) { App.Log(plugin.GetType().Name + " failed in OnBeforeRequestSent(): " + ex.Message); } } client.CreateWebRequestObject(result.Url); var webRequest = client.WebRequest; // TODO: Connection Groups might help with sharing connections more efficiently // Initial tests show no improvements - more research required //webRequest.ConnectionGroupName = "_WebSurge_" + Thread.CurrentContext.ContextID; if (!string.IsNullOrEmpty(Options.Username)) { client.Username = Options.Username; webRequest.UnsafeAuthenticatedConnectionSharing = true; } if (!string.IsNullOrEmpty(Options.Password)) { client.Password = Options.Password; } webRequest.Method = reqData.HttpVerb; client.ContentType = reqData.ContentType; client.Timeout = Options.RequestTimeoutMs / 1000; // don't auto-add gzip headers and don't decode by default client.UseGZip = false; if (Options.NoContentDecompression) { webRequest.AutomaticDecompression = DecompressionMethods.None; } else { webRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; } if (!string.IsNullOrEmpty(reqData.RequestContent)) { var data = reqData.GetRequestContentBytes(); client.AddPostKey(data); } else { webRequest.ContentLength = 0; } foreach (var header in result.Headers) { var lheader = header.Name.ToLower(); // Header Overrides that fail if you try to set them // directly in HTTP if (lheader == "cookie" && !string.IsNullOrEmpty(Options.ReplaceCookieValue)) { string cookie = Options.ReplaceCookieValue; webRequest.Headers.Add("Cookie", cookie); header.Value = cookie; continue; } if (lheader == "authorization" && !string.IsNullOrEmpty(Options.ReplaceAuthorization)) { webRequest.Headers.Add("Authorization", Options.ReplaceAuthorization); header.Value = Options.ReplaceAuthorization; continue; } if (lheader == "user-agent") { client.UserAgent = header.Value; continue; } if (lheader == "accept") { webRequest.Accept = header.Value; continue; } if (lheader == "referer") { webRequest.Referer = header.Value; continue; } if (lheader == "connection") { if (header.Value.ToLower() == "keep-alive") { webRequest.KeepAlive = true; // this has no effect } else if (header.Value.ToLower() == "close") { webRequest.KeepAlive = false; } continue; } // set above view property if (lheader == "content-type") { continue; } // not handled at the moment if (lheader == "proxy-connection") { continue; // TODO: Figure out what to do with this one } // set explicitly via properties if (lheader == "transfer-encoding") { webRequest.TransferEncoding = header.Value; continue; } if (lheader == "date") { continue; } if (lheader == "expect") { //webRequest.Expect = header.Value; continue; } if (lheader == "if-modified-since") { continue; } webRequest.Headers.Add(header.Name, header.Value); } DateTime dt = DateTime.UtcNow; if (CancelThreads) { return(null); } // using West Wind HttpClient string httpOutput = client.DownloadString(result.Url); if (CancelThreads) { return(null); } result.TimeTakenMs = (int)DateTime.UtcNow.Subtract(dt).TotalMilliseconds; // result.TimeToFirstByteMs = client.Timings.TimeToFirstByteMs; if (client.Error || client.WebResponse == null) { result.ErrorMessage = client.ErrorMessage; return(result); } result.StatusCode = ((int)client.WebResponse.StatusCode).ToString(); result.StatusDescription = client.WebResponse.StatusDescription ?? string.Empty; result.TimeToFirstByteMs = client.HttpTimings.TimeToFirstByteMs; result.ResponseLength = (int)client.WebResponse.ContentLength; if (result.ResponseLength < 1 && !string.IsNullOrEmpty(httpOutput)) { result.ResponseLength = httpOutput.Length; } result.ResponseContent = httpOutput; StringBuilder sb = new StringBuilder(); foreach (string key in client.WebResponse.Headers.Keys) { sb.AppendLine(key + ": " + client.WebResponse.Headers[key]); } result.ResponseHeaders = sb.ToString(); // update to actual Http headers sent result.Headers.Clear(); foreach (string key in webRequest.Headers.Keys) { result.Headers.Add(new HttpRequestHeader() { Name = key, Value = webRequest.Headers[key] }); } char statusCode = result.StatusCode[0]; if (statusCode == '4' || statusCode == '5') { result.IsError = true; result.ErrorMessage = client.WebResponse.StatusDescription; } else { result.IsError = false; result.ErrorMessage = null; if (Options.MaxResponseSize > 0 && result.ResponseContent.Length > Options.MaxResponseSize) { result.ResponseContent = result.ResponseContent.Substring(0, Options.MaxResponseSize); } } //} // using client client.Dispose(); if (!CancelThreads) { OnRequestProcessed(result); } return(result); } // these will occur on shutdown - don't log since they will return // unstable results - just ignore catch (ThreadAbortException) { return(null); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); result.IsError = true; result.ErrorMessage = "CheckSite Error: " + ex.GetBaseException().Message; if (!CancelThreads) { OnRequestProcessed(result); } return(result); } }
public void SetProgrammedSplits(string signalId) { Splits.Clear(); var l = new List <int>(); for (var i = 130; i <= 151; i++) { l.Add(i); } var splitsDt = new ControllerEventLogs(signalId, StartTime, StartTime.AddSeconds(2), l); foreach (var row in splitsDt.Events) { if (row.EventCode == 132) { CycleLength = row.EventParam; } if (row.EventCode == 133) { OffsetLength = row.EventParam; } if (row.EventCode == 134 && !Splits.ContainsKey(1)) { Splits.Add(1, row.EventParam); } else if (row.EventCode == 134 && row.EventParam > 0) { Splits[1] = row.EventParam; } if (row.EventCode == 135 && !Splits.ContainsKey(2)) { Splits.Add(2, row.EventParam); } else if (row.EventCode == 135 && row.EventParam > 0) { Splits[2] = row.EventParam; } if (row.EventCode == 136 && !Splits.ContainsKey(3)) { Splits.Add(3, row.EventParam); } else if (row.EventCode == 136 && row.EventParam > 0) { Splits[3] = row.EventParam; } if (row.EventCode == 137 && !Splits.ContainsKey(4)) { Splits.Add(4, row.EventParam); } else if (row.EventCode == 137 && row.EventParam > 0) { Splits[4] = row.EventParam; } if (row.EventCode == 138 && !Splits.ContainsKey(5)) { Splits.Add(5, row.EventParam); } else if (row.EventCode == 138 && row.EventParam > 0) { Splits[5] = row.EventParam; } if (row.EventCode == 139 && !Splits.ContainsKey(6)) { Splits.Add(6, row.EventParam); } else if (row.EventCode == 139 && row.EventParam > 0) { Splits[6] = row.EventParam; } if (row.EventCode == 140 && !Splits.ContainsKey(7)) { Splits.Add(7, row.EventParam); } else if (row.EventCode == 140 && row.EventParam > 0) { Splits[7] = row.EventParam; } if (row.EventCode == 141 && !Splits.ContainsKey(8)) { Splits.Add(8, row.EventParam); } else if (row.EventCode == 141 && row.EventParam > 0) { Splits[8] = row.EventParam; } if (row.EventCode == 142 && !Splits.ContainsKey(9)) { Splits.Add(9, row.EventParam); } else if (row.EventCode == 142 && row.EventParam > 0) { Splits[9] = row.EventParam; } if (row.EventCode == 143 && !Splits.ContainsKey(10)) { Splits.Add(10, row.EventParam); } else if (row.EventCode == 143 && row.EventParam > 0) { Splits[10] = row.EventParam; } if (row.EventCode == 144 && !Splits.ContainsKey(11)) { Splits.Add(11, row.EventParam); } else if (row.EventCode == 144 && row.EventParam > 0) { Splits[11] = row.EventParam; } if (row.EventCode == 145 && !Splits.ContainsKey(12)) { Splits.Add(12, row.EventParam); } else if (row.EventCode == 145 && row.EventParam > 0) { Splits[12] = row.EventParam; } if (row.EventCode == 146 && !Splits.ContainsKey(13)) { Splits.Add(13, row.EventParam); } else if (row.EventCode == 146 && row.EventParam > 0) { Splits[13] = row.EventParam; } if (row.EventCode == 147 && !Splits.ContainsKey(14)) { Splits.Add(14, row.EventParam); } else if (row.EventCode == 147 && row.EventParam > 0) { Splits[14] = row.EventParam; } if (row.EventCode == 148 && !Splits.ContainsKey(15)) { Splits.Add(15, row.EventParam); } else if (row.EventCode == 148 && row.EventParam > 0) { Splits[15] = row.EventParam; } if (row.EventCode == 149 && !Splits.ContainsKey(16)) { Splits.Add(16, row.EventParam); } else if (row.EventCode == 149 && row.EventParam > 0) { Splits[16] = row.EventParam; } } if (Splits.Count == 0) { for (var i = 0; i < 16; i++) { Splits.Add(i, 0); } } }
public DateTime EndTimeWithMargin() { int EndMargin = RecSetting.GetTrueMargin(false); return(StartTime.AddSeconds((int)DurationSecond + EndMargin)); }
public DateTime StartTimeWithMargin(int MarginMin = 0) { int StartMargin = RecSetting.GetTrueMargin(true) + 60 * MarginMin; return(StartTime.AddSeconds(StartMargin * -1)); }
void TagCompletedEvent(object sender, CSLibrary.Events.OnAccessCompletedEventArgs e) { if (!e.success) { GetLog(); } // process result switch (_ProcessState) { // run next step pcocess case 0: case 1: case 2: case 7: case 8: System.Threading.Thread.Sleep(500); _ProcessState++; GetLog(); break; case 3: { UInt16[] TagData = BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts(); StartTime = UnixTime(TagData[0] << 16 | TagData[1]); Interval = TagData[2]; TempOffset = 0.25 * (TagData[3]); Total = TagData[4]; //label17.Text = "Total : " + Total.ToString(); if (Total >= 10752) { //label17.Text += " (MemoryBank Full)"; } // read first data set _ProcessState++; GetLog(); } break; case 4: { System.Threading.Thread.Sleep(2500); _ProcessState++; GetLog(); } break; case 5: { if ((BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts()[0] & 0x04) != 0x0000) { _ProcessState++; ReadRecord = (UInt16)(Total - ReadOffset); if (ReadRecord > 366) { ReadRecord = 366; } ReadUInt16 = (UInt16)((ReadRecord + 1) / 2); ReadRecordOffset = 0; if (ReadUInt16 > _ReadChunkSize) { ReadRecordSize = _ReadChunkSize; } else { ReadRecordSize = ReadUInt16; } } else { System.Threading.Thread.Sleep(500); } GetLog(); } break; case 6: InvokeOnMainThread(() => { UInt16[] DataPtr = BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts(); for (int cnt = 0; cnt < DataPtr.Length; cnt++) { ColdChainTagTempLogInfoViewModel ins; double temp; temp = ((DataPtr[cnt] >> 8) * 0.25) - TempOffset; ins = new ColdChainTagTempLogInfoViewModel(); ins.Index = (TagInfoList.Count + 1).ToString(); ins.Time = StartTime.ToString(); ins.Temp = temp.ToString(); TagInfoList.Add(ins); StartTime = StartTime.AddSeconds(Interval); if (TagInfoList.Count != Total) { temp = ((DataPtr[cnt] & 0xff) * 0.25) - TempOffset; ins = new ColdChainTagTempLogInfoViewModel(); ins.Index = (TagInfoList.Count + 1).ToString(); ins.Time = StartTime.ToString(); ins.Temp = temp.ToString(); TagInfoList.Add(ins); StartTime = StartTime.AddSeconds(Interval); } } if ((ReadRecordOffset + ReadRecordSize) >= ReadUInt16) { ReadOffset += (UInt16)(ReadUInt16 * 2); if (ReadOffset < Total) { _ProcessState = 4; } else { _ProcessState = 7; } } else { ReadUInt16 -= ReadRecordSize; ReadRecordOffset += ReadRecordSize; if (ReadUInt16 > _ReadChunkSize) { ReadRecordSize = _ReadChunkSize; } else { ReadRecordSize = ReadUInt16; } } GetLog(); }); break; } }
public string GetDurationRemaining() { if (Duration == -1) { return("Permanent"); } if (StartTime.AddSeconds(Duration) <= DateTime.Now) { return(string.Empty); } var remainingTime = StartTime.AddSeconds(Duration) - DateTime.Now; switch (remainingTime.Days) { case > 1: return($"{remainingTime.Days} Days"); case 1: return($"{remainingTime.Days} Day"); default: { var stringBuilder = new StringBuilder(); switch (remainingTime.Hours) { case 1: stringBuilder.Append("1 Hour "); break; case > 1: stringBuilder.Append(remainingTime.Hours); stringBuilder.Append(" Hour "); break; } switch (remainingTime.Minutes) { case > 1: stringBuilder.Append(remainingTime.Minutes); stringBuilder.Append(" Minutes "); break; default: stringBuilder.Append(remainingTime.Minutes); stringBuilder.Append(" Minute "); break; } switch (remainingTime.Seconds) { case > 1: stringBuilder.Append(remainingTime.Seconds); stringBuilder.Append(" Seconds"); break; default: stringBuilder.Append(remainingTime.Seconds); stringBuilder.Append(" Second"); break; } return(stringBuilder.ToString()); } } }
/// <summary> /// Starts a watcher threads for each PS log file (should be only PokerStars.log.0 and sometimes PokerStars.log.1) /// </summary> private static void WatchNewLogFiles(object state) { /// For future reference: FullTilt's log files are AppData\Local\FullTilt.xx\FullTilt.log.x - it's window titles work the same way /// The PS.com (and likely FT.com) client's log folder DOES NOT have the .COM extension in it's directory name. (tested & confirmed) List <string> newLogFiles = new List <string>(); // Find PS folder for user's client string appDataLocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); var PSDirs = Directory.GetDirectories(appDataLocal, "PokerStars*"); var FTDirs = Directory.GetDirectories(appDataLocal, "FullTilt*"); // PokerStars logs foreach (var dir in PSDirs) // foreach in case of multiple locales { string logFileBase = dir + "\\PokerStars.log."; if (File.Exists(logFileBase + 0) && !activeLogFiles.Contains(logFileBase + 0)) { newLogFiles.Add(logFileBase + 0); } if (File.Exists(logFileBase + 1) && !activeLogFiles.Contains(logFileBase + 1)) { newLogFiles.Add(logFileBase + 1); } } // Fulltilt logs foreach (var dir in FTDirs) // foreach in case of multiple locales { string logFileBase = dir + "\\FullTilt.log."; if (File.Exists(logFileBase + 0) && !activeLogFiles.Contains(logFileBase + 0)) { newLogFiles.Add(logFileBase + 0); } if (File.Exists(logFileBase + 1) && !activeLogFiles.Contains(logFileBase + 1)) { newLogFiles.Add(logFileBase + 1); } } // In case logs don't work the way I think, let user know if (newLogFiles.Count() > 0) { foreach (string log in newLogFiles) { GHelper.SafeThreadStart(() => WatchLog(log)); } newLogFiles.Clear(); // This should only happen while debugging or on a new PS install if (DateTime.Now > StartTime.AddSeconds(9)) { // Give user some time to catch up on their tables if any lock (Table.KnownTables) { if (Table.KnownTables.Count > 0) { Thread.Sleep(5000); } } Logger.Log("Detected new PS log while running. This should only happen once after (re)installing PokerStars." + "Please contact the developer if this occurs more than once.", Logger.Status.Warning, showMessageBox: true); } } }
// set programmed splits public void SetProgrammedSplits(string signal_id) { Splits.Clear(); IEnumerable <SplitsUDOT> SplitsDT; // UDOT adds 2 seconds to capture difference between when pattern changes and when split change is recorded // SplitsDT = UDOTSplitsData.Where(Function(d) d.Timestamp >= mStartTime And d.Timestamp <= mStartTime.AddSeconds(2)) // Econolite records new splits at the system zero time, which is the nearest multiple of the cycle length after midnight. // For simplicity, just add one cycle length and it should be fine. SplitsDT = Globals.UDOTSplitsData.Where(d => d.Timestamp >= StartTime & d.Timestamp <= StartTime.AddSeconds(CycleLength)); foreach (SplitsUDOT row in SplitsDT) { if (row.EventCode == 132) { CycleLength = row.EventParam; } if (row.EventCode == 133) { OffsetLength = row.EventParam; } if (row.EventCode == 134 & !Splits.ContainsKey(1)) { Splits.Add(1, row.EventParam); } if (row.EventCode == 134 & row.EventParam > 0) { Splits[1] = row.EventParam; } if (row.EventCode == 135 & !Splits.ContainsKey(2)) { Splits.Add(2, row.EventParam); } if (row.EventCode == 135 & row.EventParam > 0) { Splits[2] = row.EventParam; } if (row.EventCode == 136 & !Splits.ContainsKey(3)) { Splits.Add(3, row.EventParam); } if (row.EventCode == 136 & row.EventParam > 0) { Splits[3] = row.EventParam; } if (row.EventCode == 137 & !Splits.ContainsKey(4)) { Splits.Add(4, row.EventParam); } if (row.EventCode == 137 & row.EventParam > 0) { Splits[4] = row.EventParam; } if (row.EventCode == 138 & !Splits.ContainsKey(5)) { Splits.Add(5, row.EventParam); } if (row.EventCode == 138 & row.EventParam > 0) { Splits[5] = row.EventParam; } if (row.EventCode == 139 & !Splits.ContainsKey(6)) { Splits.Add(6, row.EventParam); } if (row.EventCode == 139 & row.EventParam > 0) { Splits[6] = row.EventParam; } if (row.EventCode == 140 & !Splits.ContainsKey(7)) { Splits.Add(7, row.EventParam); } if (row.EventCode == 140 & row.EventParam > 0) { Splits[7] = row.EventParam; } if (row.EventCode == 141 & !Splits.ContainsKey(8)) { Splits.Add(8, row.EventParam); } if (row.EventCode == 141 & row.EventParam > 0) { Splits[8] = row.EventParam; } if (row.EventCode == 142 & !Splits.ContainsKey(9)) { Splits.Add(9, row.EventParam); } if (row.EventCode == 142 & row.EventParam > 0) { Splits[9] = row.EventParam; } if (row.EventCode == 143 & !Splits.ContainsKey(10)) { Splits.Add(10, row.EventParam); } if (row.EventCode == 143 & row.EventParam > 0) { Splits[10] = row.EventParam; } if (row.EventCode == 144 & !Splits.ContainsKey(11)) { Splits.Add(11, row.EventParam); } if (row.EventCode == 144 & row.EventParam > 0) { Splits[11] = row.EventParam; } if (row.EventCode == 145 & !Splits.ContainsKey(12)) { Splits.Add(12, row.EventParam); } if (row.EventCode == 145 & row.EventParam > 0) { Splits[12] = row.EventParam; } if (row.EventCode == 146 & !Splits.ContainsKey(13)) { Splits.Add(13, row.EventParam); } if (row.EventCode == 146 & row.EventParam > 0) { Splits[13] = row.EventParam; } if (row.EventCode == 147 & !Splits.ContainsKey(14)) { Splits.Add(14, row.EventParam); } if (row.EventCode == 147 & row.EventParam > 0) { Splits[14] = row.EventParam; } if (row.EventCode == 148 & !Splits.ContainsKey(15)) { Splits.Add(15, row.EventParam); } if (row.EventCode == 148 & row.EventParam > 0) { Splits[15] = row.EventParam; } if (row.EventCode == 149 & !Splits.ContainsKey(16)) { Splits.Add(16, row.EventParam); } if (row.EventCode == 149 & row.EventParam > 0) { Splits[16] = row.EventParam; } } if (Splits.Count == 0) { for (var i = 0; i <= 15; i++) { Splits.Add(i, 0); } } }