예제 #1
0
        public Error(Exception exp, StackFrame[] frames = null, bool snapshot = true)
        {
            #region HResult [Exception Type Code]

            HResult = exp.HResult;

            #endregion

            #region Error Line Column

            LineColumn = new CodeScope(exp);

            #endregion

            #region Method

            Method = (exp.TargetSite != null && exp.TargetSite.ReflectedType != null) ?
                    exp.TargetSite.ReflectedType.FullName + "." + exp.TargetSite : "";

            #endregion

            #region Id = HashCode
            Id = GetHashCode();
            #endregion

            #region Screen Capture

            // First initialize Snapshot of Error, because that's speed is important!
            if (!CacheController.SdfManager.ErrorIds.ContainsKey(Id) && snapshot)
            {
                Snapshot = ScreenCapture.Capture();

                if (Snapshot != null && ErrorHandlingOption.ResizeSnapshots)
                    Snapshot = Snapshot.ResizeImage(ScreenCapture.ReSizeAspectRatio.Width, ScreenCapture.ReSizeAspectRatio.Height);
            }

            #endregion

            #region StackTrace

            StackTrace = CodeScope.StackFramesToString(frames) ??
                (exp.InnerException != null
                ? exp.InnerException.StackTrace ?? ""
                : exp.StackTrace ?? "");

            #endregion

            #region Error Date Time

            ErrorDateTime = DateTime.Now;

            #endregion

            #region Server Date Time

            ServerDateTime = ErrorHandlingOption.FetchServerDateTime
                ? ServerTransmitter.SqlServerManager.GetServerDateTime()
                : DateTime.Now;

            #endregion

            #region Current Culture

            CurrentCulture = String.Format("{0} ({1})",
                    InputLanguage.CurrentInputLanguage.Culture.NativeName,
                    InputLanguage.CurrentInputLanguage.Culture.Name);

            #endregion

            #region Message

            Message = exp.InnerException != null ? exp.InnerException.Message : exp.Message;

            #endregion

            #region Member Type

            MemberType = (exp.TargetSite != null)
                    ? exp.TargetSite.MemberType.ToString()
                    : "";

            #endregion

            #region Module Name

            ModuleName =
                    (exp.TargetSite != null) ? exp.TargetSite.Module.Name : "";

            #endregion

            #region User [Domain.UserName]

            User = Environment.UserDomainName + "\\" + Environment.UserName;

            #endregion

            #region Host [Machine Name]

            Host = Environment.MachineName;

            #endregion

            #region Operation System Information

            OS = new OperationSystemInfo(true).ToString();

            #endregion

            #region Application Name [Name  v#####]

            AppName = Connection.GetRunningAppNameVersion();

            #endregion

            #region Process Name String List

            Processes = new CurrentProcesses().ToString();

            #endregion

            #region IsHandled default value is true

            IsHandled = true;

            #endregion

            #region Current Static Valid IPv4 Address

            IPv4Address = NetworkHelper.GetIpAddress();

            #endregion

            #region Network Physical Address [MAC HEX]

            MacAddress = NetworkHelper.GetMacAddress();

            #endregion

            #region Common Language Runtime Version [Major.Minor.Build.Revison]

            ClrVersion = Environment.Version.ToString();

            #endregion

            #region Error Type

            ErrorType = exp.GetType().Name;

            #endregion

            #region Source

            Source = exp.Source;

            #endregion

            #region Data

            Data = DictionaryToXml(GetAdditionalData(exp), "ExtraProperties");

            #endregion
        }
예제 #2
0
        /// <summary>
        /// Get handled exception's by additional data.
        /// </summary>
        /// <param name="exp">>The occurrence raw error.</param>
        /// <param name="frames">The array of <see cref="System.Diagnostics.StackFrame"/> to changes by exception stackTrace</param>
        /// <param name="snapshot">Capture screen or not?</param>
        public Error(Exception exp, StackFrame[] frames = null, bool snapshot = true)
        {
            #region HResult [Exception Type Code]

            HResult = exp.HResult;

            #endregion

            #region Error Line Column

            LineColumn = new CodeScope(exp);

            #endregion

            #region Method

            Method = (exp.TargetSite != null && exp.TargetSite.ReflectedType != null) ?
                     exp.TargetSite.ReflectedType.FullName + "." + exp.TargetSite : "";

            #endregion

            #region Id = HashCode
            Id = GetHashCode();
            #endregion

            #region Screen Capture

            // First initialize Snapshot of Error, because that's speed is important!
            if (!SqlCompactEditionManager.ErrorIds.ContainsKey(Id) && snapshot)
            {
                Snapshot = ScreenCapture.Capture();

                if (Snapshot != null && ErrorHandlingOption.ResizeSnapshots)
                {
                    Snapshot = Snapshot.ResizeImage(ScreenCapture.ReSizeAspectRatio.Width, ScreenCapture.ReSizeAspectRatio.Height);
                }
            }

            #endregion

            #region StackTrace

            StackTrace = CodeScope.StackFramesToString(frames) ??
                         (exp.InnerException != null
                ? exp.InnerException.StackTrace ?? ""
                : exp.StackTrace ?? "");

            #endregion

            #region Error Date Time

            ErrorDateTime = DateTime.Now;

            #endregion

            #region Server Date Time

            ServerDateTime = ErrorHandlingOption.FetchServerDateTime
                ? NetworkHelper.GetServerDateTime()
                : DateTime.Now;

            #endregion

            #region Current Culture

            CurrentCulture = String.Format("{0} ({1})",
                                           InputLanguage.CurrentInputLanguage.Culture.NativeName,
                                           InputLanguage.CurrentInputLanguage.Culture.Name);

            #endregion

            #region Message

            Message = exp.Message;

            #endregion

            #region Member Type

            MemberType = (exp.TargetSite != null)
                    ? exp.TargetSite.MemberType.ToString()
                    : "";

            #endregion

            #region Module Name

            ModuleName =
                (exp.TargetSite != null) ? exp.TargetSite.Module.Name : "";

            #endregion

            #region User [Domain.UserName]

            User = Environment.UserDomainName + "\\" + Environment.UserName;

            #endregion

            #region Host [Machine Name]

            Host = Environment.MachineName;

            #endregion

            #region Operation System Information

            OS = new OperationSystemInfo(true).ToString();

            #endregion

            #region Application Name [Name  v#####]

            AppName = Connection.GetRunningAppNameVersion();

            #endregion

            #region Process Name String List

            Processes = new CurrentProcesses().ToString();

            #endregion

            #region IsHandled default value is true

            IsHandled = true;

            #endregion

            #region Current Static Valid IPv4 Address

            IPv4Address = NetworkHelper.GetIpAddress();

            #endregion

            #region Network Physical Address [MAC HEX]

            MacAddress = NetworkHelper.GetMacAddress();

            #endregion

            #region Common Language Runtime Version [Major.Minor.Build.Revison]

            ClrVersion = Environment.Version.ToString();

            #endregion

            #region Error Type

            ErrorType = exp.GetType().Name;

            #endregion

            #region Source

            Source = exp.Source;

            #endregion

            #region Data

            Data = DictionaryToXml(GetAdditionalData(exp), "ExtraProperties");

            #endregion
        }