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; }); }
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; }