Exemplo n.º 1
0
        public static void CreateMappings()
        {
            Mapper.CreateMap <Error, ErrorModel>().AfterMap((e, em) => {
                em.ClientTime = e.OccurrenceDate;
                em.PopulateExtraInfo();
            });

            Mapper.CreateMap <Error, ErrorResult>()
            .ForMember(er => er.Date, opt => opt.MapFrom(e => e.OccurrenceDate))
            .AfterMap((e, er) => {
                StackingInfo info = e.GetStackingInfo();
                er.Type           = info.FullTypeName;
                er.Method         = info.Method != null ? info.Method.FullName : null;
                er.Path           = info.Path;
                er.Is404          = info.Is404;
                er.Message        = info.Message;
            });

            Mapper.CreateMap <ErrorStack, ErrorStackResult>()
            .ForMember(esr => esr.First, opt => opt.MapFrom(es => es.FirstOccurrence))
            .ForMember(esr => esr.Last, opt => opt.MapFrom(es => es.LastOccurrence))
            .ForMember(esr => esr.Total, opt => opt.MapFrom(es => es.TotalOccurrences))
            .AfterMap((es, esr) => {
                esr.Type   = es.SignatureInfo.ContainsKey("ExceptionType") ? es.SignatureInfo["ExceptionType"] : null;
                esr.Method = es.SignatureInfo.ContainsKey("Method") ? es.SignatureInfo["Method"] : null;
                esr.Path   = es.SignatureInfo.ContainsKey("Path") ? es.SignatureInfo["Path"] : null;
                esr.Is404  = es.SignatureInfo.ContainsKey("Path") && !es.SignatureInfo.ContainsKey("ExceptionType");
            });

            Mapper.CreateMap <Project, ProjectModel>();

            Mapper.CreateMap <StripeInvoice, InvoiceGridModel>().AfterMap((si, igm) => { igm.Id = si.Id.Substring(3); });

            Mapper.CreateMap <Project, ProjectInfoModel>().AfterMap((p, pi) => { pi.TimeZoneOffset = p.DefaultTimeZoneOffset().TotalMilliseconds; });
        }
Exemplo n.º 2
0
        public virtual void PopulateExtraInfo()
        {
            if (RequestInfo != null && RequestInfo.UserAgent != null)
            {
                Parser parser = Parser.GetDefault();
                UserAgentInfo = parser.Parse(RequestInfo.UserAgent);
            }

            StackingInfo st = this.GetStackingInfo();

            StackingType         = st.FullTypeName;
            StackingMethod       = st.MethodName;
            StackingMessage      = st.Message;
            StackingExtendedData = st.Error.ExtendedData;
        }