public static EqpSpanDuration Get30MKPI(string tagid) { EqpSpanDuration data = new EqpSpanDuration(); try { data.TagID = tagid; SpanStatus span = DTRecord.GetSpanTimeStatus(tagid, -30); bool ISDown = true; if (span != null) { if (span.Status == "Operating" || span.Status == "Lack" || span.Status == "Tailback") { data.Run = span.Duration; ISDown = false; } else { data.Down = span.Duration; } } if (ISDown) { data.Down = data.Down + DTRecord.GetDownTime(tagid, -30); data.Run = 30 - data.Down; } else { data.Down = DTRecord.GetDownTime(tagid, -30); data.Run = 30 - data.Down; } data.KPI = data.Run / 30; } catch (Exception ex) { Log.Error(ex.ToString()); data = null; } return(data); }
public ISpan End(SpanStatus status = SpanStatus.Succeeded, string statusDescription = null, DateTimeOffset?date = null) { // only set default status if none has been set already if (this.Status == SpanStatus.Transient || this.Status == null) { this.Status = status; this.StatusDescription = statusDescription; } if (date.HasValue) { this.EndTime = date; } else { this.EndTime = DateTimeOffset.UtcNow; } return(this); }
public static SpanStatus GetSpanTimeStatus(string tagid, double minute) { SpanStatus data = new SpanStatus(); DateTime time = DateTime.Now.AddMinutes(minute); string sql = string.Format(" select Start_time,End_time,Duration,Status,TagID from DTRecord where tagid='{0}' and end_time >='{1}' and start_time<='{1}' ", tagid, time); DataTable dt = MSSql.ExecuteQueryDataTable(sql); if (dt == null || dt.Rows.Count == 0) { return(null); } else { data.Status = dt.Rows[0]["Status"].ToString().Trim(); DateTime endtime = Convert.ToDateTime(dt.Rows[0]["End_time"]); TimeSpan span = endtime - time; data.Duration = span.TotalMinutes; return(data); } }
/// <summary> /// Finishes the span. /// </summary> public static void Finish(this ISpan span, SpanStatus status) { span.Status = status; span.Finish(); }
public ISpan SetStatus(SpanStatus status, string description = null) { this.Status = status; this.StatusDescription = description; return(this); }
public void End(IScope scope = null, SpanStatus status = SpanStatus.Succeeded, string statusDescription = null) { scope ??= this.ScopeManager.Current; scope?.Span?.End(status, statusDescription); this.ScopeManager.Deactivate(scope); }