using Elmah; using System; using System.Data.Common; namespace Sony.Filtr.Tasks.Models { [Serializable] public class ExportLog: Exception { public ExportLog() { } public ExportLog(string message) : base(message) { } public ExportLog(string message, Exception innerException) : base(message, innerException) { } public ExportLog(DbDataReader reader) : base(ModifyMessage(reader)) { ErrorId = reader.GetString(0); ApplicationName = reader.GetString(1); HostName = reader.GetString(2); Type = reader.GetString(3); Source = reader.GetString(4); Message = reader.GetString(5); User = reader.GetString(6); StatusCode = reader.GetInt32(7); Time = reader.GetDateTime(8); Sequence = reader.GetInt64(9); AllXml = reader.GetString(10); } private static string ModifyMessage(DbDataReader reader) { return string.Format("ErrorId: {0}" + "ApplicationName: {1}" + "HostName: {2}" + "Type: {3}" + "Source: {4}" + "Message: {5}" + "User: {6}" + "StatusCode: {7}" + "Time: {8}" + "Sequence: {9}" + "AllXml: {10}", reader.GetString(0) + Environment.NewLine, reader.GetString(1) + Environment.NewLine, reader.GetString(2) + Environment.NewLine, reader.GetString(3) + Environment.NewLine, reader.GetString(4) + Environment.NewLine, reader.GetString(5) + Environment.NewLine, reader.GetString(6) + Environment.NewLine, reader.GetString(7) + Environment.NewLine, reader.GetString(8) + Environment.NewLine, reader.GetString(9) + Environment.NewLine, reader.GetString(10)); } public string ErrorId { get; set; } public string ApplicationName { get; set; } public string HostName { get; set; } public string Message { get; set; } public string Source { get; set; } public int StatusCode { get; set; } public DateTime Time { get; set; } public string Type { get; set; } public string User { get; set; } public string AllXml { get; set; } public long Sequence { get; set; } } }