private static JObject GetJsonContent(string name, CacheItemDetail detail, CacheItemTelemetry telemetry, object value, Uri removeLink, bool expanded) { var policyContent = GetJsonPolicyContent(detail); var telemetryContent = telemetry != null ? new JObject { { "memberName", telemetry.Caller.MemberName }, { "sourceFilePath", telemetry.Caller.SourceFilePath }, { "sourceLineNumber", telemetry.Caller.SourceLineNumber }, { "duration", telemetry.Duration }, { "accessCount", telemetry.AccessCount }, { "cacheItemStatus", detail.CacheItemStatus.ToString() }, { "staleAccessCount", telemetry.StaleAccessCount }, { "lastAccessedOn", telemetry.LastAccessedOn }, { "isStartup", telemetry.IsStartup }, { "isAllColumns", telemetry.IsAllColumns }, { "attributes", new JArray(telemetry.Attributes) } } : null; var properties = new JObject { { "name", name }, { "type", value != null?value.GetType().ToString() : null }, { "remove", removeLink.AbsoluteUri } }; if (policyContent != null) { properties.Add("policy", policyContent); } if (telemetryContent != null) { properties.Add("telemetry", telemetryContent); } if (expanded) { if (value != null) { properties.Add("value", JToken.FromObject(value, CrmJsonConvert.CreateJsonSerializer())); } if (telemetry != null && telemetry.Request != null) { properties.Add("request", JToken.FromObject(telemetry.Request, CrmJsonConvert.CreateJsonSerializer())); } } var content = new JObject { { "properties", properties } }; return(content); }
private static IEnumerable <XElement> GetContent(CacheItemDetail detail, CacheItemTelemetry telemetry) { if (detail != null && detail.Policy != null) { yield return(new XElement("policy", GetPolicyContent(detail))); } if (telemetry != null) { yield return(new XElement("telemetry", GetTelemetryContent(detail, telemetry))); } }
private static IEnumerable <XElement> GetPolicyContent(CacheItemDetail detail) { yield return(new XElement("isStaleDataAllowed", detail.IsStaleDataAllowed)); yield return(new XElement("absoluteExpiration", detail.Policy.AbsoluteExpiration)); yield return(new XElement("slidingExpiration", detail.Policy.SlidingExpiration)); yield return(new XElement("priority", detail.Policy.Priority)); if (detail.Policy.ChangeMonitors != null) { yield return(new XElement("changeMonitors", GetContent(detail.Policy.ChangeMonitors))); } }
private static SyndicationContent GetContent(string name, CacheItemDetail detail, CacheItemTelemetry telemetry, object value, Uri removeLink, bool expanded) { var defaultProps = new[] { new XElement("name", name), new XElement("type", value.GetType().ToString()), new XElement("remove", new XAttribute("href", removeLink)) }; var properties = defaultProps.Concat(GetContent(detail, telemetry)).Concat(GetContentValues(value, expanded)); var content = new XElement("properties", properties); var sc = SyndicationContent.CreateXmlContent(content); return(sc); }
private static JObject GetJsonPolicyContent(CacheItemDetail detail) { if (detail != null) { var policyDetail = detail.Policy; if (policyDetail != null) { var policy = new JObject { { "isStaleDataAllowed", detail.IsStaleDataAllowed }, { "absoluteExpiration", policyDetail.AbsoluteExpiration.UtcDateTime }, { "slidingExpiration", policyDetail.SlidingExpiration }, { "priority", policyDetail.Priority.ToString() }, { "changeMonitors", new JArray(policyDetail.ChangeMonitors.SelectMany(cm => cm.CacheKeys)) } }; return(policy); } } return(null); }
private static IEnumerable <XElement> GetTelemetryContent(CacheItemDetail detail, CacheItemTelemetry telemetry) { yield return(new XElement("memberName", telemetry.Caller.MemberName)); yield return(new XElement("sourceFilePath", telemetry.Caller.SourceFilePath)); yield return(new XElement("sourceLineNumber", telemetry.Caller.SourceLineNumber)); yield return(new XElement("duration", telemetry.Duration)); yield return(new XElement("accessCount", telemetry.AccessCount)); yield return(new XElement("cacheItemStatus", detail.CacheItemStatus.ToString())); yield return(new XElement("staleAccessCount", telemetry.StaleAccessCount)); yield return(new XElement("lastAccessedOn", telemetry.LastAccessedOn)); yield return(new XElement("isStartup", telemetry.IsStartup)); yield return(new XElement("isAllColumns", telemetry.IsAllColumns)); yield return(new XElement("attributes", telemetry.Attributes)); }
/// <summary> /// Intializes a new instance of <see cref="CacheItemContainer"/>> /// </summary> /// <param name="value">The cache value.</param> /// <param name="detail">The cache item detail.</param> public CacheItemContainer(object value, CacheItemDetail detail = null) { Value = value; Detail = detail; }