当前位置: 首页>>代码示例>>C#>>正文


C# Models.PersistentEvent类代码示例

本文整理汇总了C#中Exceptionless.Core.Models.PersistentEvent的典型用法代码示例。如果您正苦于以下问题:C# PersistentEvent类的具体用法?C# PersistentEvent怎么用?C# PersistentEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PersistentEvent类属于Exceptionless.Core.Models命名空间,在下文中一共展示了PersistentEvent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetEventSummaryData

        public override SummaryData GetEventSummaryData(PersistentEvent ev) {
            if (!ShouldHandle(ev))
                return null;

            var error = ev.GetError();
            var stackingTarget = error?.GetStackingTarget();
            if (stackingTarget?.Error == null)
                return null;

            dynamic data = new ExpandoObject();
            data.Id = ev.Id;
            data.Message = ev.Message;

            if (!String.IsNullOrEmpty(stackingTarget.Error.Type)) {
                data.Type = stackingTarget.Error.Type.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Last();
                data.TypeFullName = stackingTarget.Error.Type;
            }

            if (stackingTarget.Method != null) {
                data.Method = stackingTarget.Method.Name;
                data.MethodFullName = stackingTarget.Method.GetFullName();
            }

            var requestInfo = ev.GetRequestInfo();
            if (!String.IsNullOrEmpty(requestInfo?.Path))
                data.Path = requestInfo.Path;

            return new SummaryData { TemplateKey = "event-error-summary", Data = data };
        }
开发者ID:Nangal,项目名称:Exceptionless,代码行数:29,代码来源:20_ErrorFormattingPlugin.cs

示例2: GenerateEvent

        public static PersistentEvent GenerateEvent(string[] organizationIds = null, string[] projectIds = null, string[] stackIds = null, DateTimeOffset? startDate = null, DateTimeOffset? endDate = null, DateTimeOffset? occurrenceDate = null, int maxErrorNestingLevel = 0, bool generateTags = true, bool generateData = true, bool isFixed = false, bool isHidden = false, string[] referenceIds = null, string type = null, string sessionId = null,  string userIdentity = null, decimal? value = -1, string semver = null)
        {
            if (!startDate.HasValue || startDate > DateTimeOffset.Now.AddHours(1))
                startDate = DateTimeOffset.Now.AddDays(-30);
            if (!endDate.HasValue || endDate > DateTimeOffset.Now.AddHours(1))
                endDate = DateTimeOffset.Now;

            var ev = new PersistentEvent {
                OrganizationId = organizationIds.Random(TestConstants.OrganizationId),
                ProjectId = projectIds.Random(TestConstants.ProjectId),
                ReferenceId = referenceIds.Random(),
                Date = occurrenceDate ?? RandomData.GetDateTimeOffset(startDate, endDate),
                Value = value.GetValueOrDefault() >= 0 ? value : RandomData.GetDecimal(0, Int32.MaxValue),
                IsFixed = isFixed,
                IsHidden = isHidden,
                StackId = stackIds.Random()
            };

            if (!String.IsNullOrEmpty(userIdentity))
                ev.SetUserIdentity(userIdentity);

            if (generateData) {
                for (int i = 0; i < RandomData.GetInt(1, 5); i++) {
                    string key = RandomData.GetWord();
                    while (ev.Data.ContainsKey(key) || key == Event.KnownDataKeys.Error)
                        key = RandomData.GetWord();

                    ev.Data.Add(key, RandomData.GetWord());
                }
            }

            if (generateTags) {
                for (int i = 0; i < RandomData.GetInt(1, 3); i++) {
                    string tag = TestConstants.EventTags.Random();
                    if (!ev.Tags.Contains(tag))
                        ev.Tags.Add(tag);
                }
            }

            if (String.IsNullOrEmpty(type) || String.Equals(type, Event.KnownTypes.Error, StringComparison.OrdinalIgnoreCase)) {
                ev.Type = Event.KnownTypes.Error;

                // limit error variation so that stacking will occur
                if (_randomErrors == null)
                    _randomErrors = new List<Error>(Enumerable.Range(1, 25).Select(i => GenerateError(maxErrorNestingLevel)));

                ev.Data[Event.KnownDataKeys.Error] = _randomErrors.Random();
            } else {
                ev.Type = type.ToLower();
            }

            if (!String.IsNullOrEmpty(sessionId))
                ev.SetSessionId(sessionId);

            if (ev.IsSessionStart())
                ev.Value = null;

            ev.SetVersion(semver);
            return ev;
        }
开发者ID:yonglehou,项目名称:Exceptionless,代码行数:60,代码来源:EventData.cs

示例3: GetEventSummaryData

        public override SummaryData GetEventSummaryData(PersistentEvent ev) {
            if (!ShouldHandle(ev))
                return null;
            
            var stackingTarget = ev.GetStackingTarget();
            if (stackingTarget?.Error == null)
                return null;

            var data = new Dictionary<string, object> { { "Id", ev.Id }, { "Message", ev.Message } };
            if (!String.IsNullOrEmpty(stackingTarget.Error.Type)) {
                data.Add("Type", stackingTarget.Error.Type.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Last());
                data.Add("TypeFullName", stackingTarget.Error.Type);
            }

            if (stackingTarget.Method != null) {
                data.Add("Method", stackingTarget.Method.Name);
                data.Add("MethodFullName", stackingTarget.Method.GetFullName());
            }

            var requestInfo = ev.GetRequestInfo();
            if (!String.IsNullOrEmpty(requestInfo?.Path))
                data.Add("Path", requestInfo.Path);

            return new SummaryData { TemplateKey = "event-error-summary", Data = data };
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:25,代码来源:20_ErrorFormattingPlugin.cs

示例4: GetEventSummaryData

        public override SummaryData GetEventSummaryData(PersistentEvent ev) {
            if (!ShouldHandle(ev))
                return null;
            
            dynamic data = new ExpandoObject();
            data.SessionId = ev.SessionId;

            if (ev.IsSessionStart()) {
                data.Value = ev.Value.GetValueOrDefault();

                DateTime? endTime = ev.GetSessionEndTime();
                if (endTime.HasValue)
                    data.SessionEnd = endTime;
            }

            var identity = ev.GetUserIdentity();
            if (identity != null) {
                if (!String.IsNullOrEmpty(identity.Identity))
                    data.Identity = identity.Identity;
                
                if (!String.IsNullOrEmpty(identity.Name))
                    data.Name = identity.Name;
            }

            return new SummaryData { TemplateKey = "event-session-summary", Data = data };
        }
开发者ID:jackswei,项目名称:Exceptionless,代码行数:26,代码来源:50_SessionFormattingPlugin.cs

示例5: GetStackTitle

        public override string GetStackTitle(PersistentEvent ev)
        {
            if (!ShouldHandle(ev))
                return null;

            return !String.IsNullOrEmpty(ev.Source) ? ev.Source : "(Unknown)";
        }
开发者ID:yonglehou,项目名称:Exceptionless,代码行数:7,代码来源:40_UsageFormattingPlugin.cs

示例6: ValidateTag

         public void ValidateTag(string tag, bool isValid) {
             var ev = new PersistentEvent { Type = Event.KnownTypes.Error, Date = DateTimeOffset.Now, Id = "123456789012345678901234", OrganizationId = "123456789012345678901234", ProjectId = "123456789012345678901234", StackId = "123456789012345678901234" };
            ev.Tags.Add(tag);

            var result = _validator.Validate(ev);
            Assert.Equal(isValid, result.IsValid);
        }
开发者ID:Nangal,项目名称:Exceptionless,代码行数:7,代码来源:EventValidatorTests.cs

示例7: GetEventViewName

        public override string GetEventViewName(PersistentEvent ev)
        {
            if (!ShouldHandle(ev))
                return null;

            return "Event-Session";
        }
开发者ID:yonglehou,项目名称:Exceptionless,代码行数:7,代码来源:50_SessionFormattingPlugin.cs

示例8: GetStackTitle

        public override string GetStackTitle(PersistentEvent ev) {
            if (!ShouldHandle(ev))
                return null;

            var error = ev.GetSimpleError();
            return error?.Message;
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:7,代码来源:10_SimpleErrorFormattingPlugin.cs

示例9: WillNotSetLocation

        public async Task WillNotSetLocation() {
            var plugin = new GeoPlugin(await GetResolverAsync(Log));
            var ev = new PersistentEvent { Geo = GREEN_BAY_COORDINATES };
            await plugin.EventBatchProcessingAsync(new List<EventContext> { new EventContext(ev) });

            Assert.Equal(GREEN_BAY_COORDINATES, ev.Geo);
            Assert.Null(ev.GetLocation());
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:8,代码来源:GeoTests.cs

示例10: UpdateGeoAndlocation

 private void UpdateGeoAndlocation(PersistentEvent ev, GeoResult result, bool isValidLocation = true) {
     ev.Geo = result?.ToString();
     
     if (result != null && isValidLocation)
         ev.SetLocation(result.ToLocation());
     else
         ev.Data.Remove(Event.KnownDataKeys.Location);
 }
开发者ID:TrinityComputers,项目名称:Exceptionless,代码行数:8,代码来源:50_GeoPlugin.cs

示例11: EventNotification

 public EventNotification(EventNotificationWorkItem workItem, PersistentEvent ev) {
     EventId = workItem.EventId ?? ev.Id;
     IsNew = workItem.IsNew;
     IsCritical = workItem.IsCritical;
     IsRegression = workItem.IsRegression;
     TotalOccurrences = workItem.TotalOccurrences;
     ProjectName = workItem.ProjectName;
     Event = ev;
 }
开发者ID:Nangal,项目名称:Exceptionless,代码行数:9,代码来源:EventNotification.cs

示例12: AddManualStackSignatureData

        public async Task AddManualStackSignatureData(string stackingKey, bool willAddManualStackSignature) {
            var ev = new PersistentEvent();
            ev.SetManualStackingKey(stackingKey);

            var context = new EventContext(ev);
            var plugin = new ManualStackingPlugin();
            await plugin.EventBatchProcessingAsync(new List<EventContext> { context });
            Assert.Equal(willAddManualStackSignature, context.StackSignatureData.Count > 0);
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:9,代码来源:ManualStackingTests.cs

示例13: WillResetLocation

        public async Task WillResetLocation(string geo) {
            var plugin = new GeoPlugin(await GetResolverAsync(Log));
            
            var ev = new PersistentEvent { Geo = geo };
            await plugin.EventBatchProcessingAsync(new List<EventContext> { new EventContext(ev) });

            Assert.Null(ev.Geo);
            Assert.Null(ev.GetLocation());
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:9,代码来源:GeoTests.cs

示例14: GetEventSummaryData

        public SummaryData GetEventSummaryData(PersistentEvent ev) {
            var data = new Dictionary<string, object> {
                { "Message", GetStackTitle(ev) },
                { "Source", ev.Source },
                { "Type", ev.Type }
            };

            return new SummaryData { TemplateKey = "event-summary", Data = data };
        }
开发者ID:rpotalara,项目名称:Exceptionless,代码行数:9,代码来源:99_DefaultFormattingPlugin.cs

示例15: GetStackTitle

        public override string GetStackTitle(PersistentEvent ev) {
            if (!ShouldHandle(ev))
                return null;

            if (ev.IsSessionHeartbeat())
                return "Session Heartbeat";

            return ev.IsSessionStart() ? "Session Start" : "Session End";
        }
开发者ID:jackswei,项目名称:Exceptionless,代码行数:9,代码来源:50_SessionFormattingPlugin.cs


注:本文中的Exceptionless.Core.Models.PersistentEvent类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。