Error.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Text;
  3. using Quadarax.Foundation.Core.Exceptions;
  4. using static System.Runtime.InteropServices.JavaScript.JSType;
  5. namespace Quadarax.Foundation.Core.Data
  6. {
  7. public class Error : IError
  8. {
  9. #region *** Properties ***
  10. public string Message { get; }
  11. public int Code { get; }
  12. public ErrorLevelEnum Level { get; }
  13. public DateTime Timestamp { get; }
  14. #endregion
  15. #region *** Constructors ***
  16. public Error(string message, int code, ErrorLevelEnum level, DateTime? timestamp = null)
  17. {
  18. Message = message;
  19. Code = code;
  20. Level = level;
  21. Timestamp = timestamp ?? DateTime.Now;
  22. }
  23. public Error(Exception exception)
  24. {
  25. if (exception==null)
  26. throw new ArgumentNullException(nameof(exception));
  27. Message = exception.Message;
  28. Code = exception.GetCode();
  29. Timestamp = DateTime.Now;
  30. }
  31. #endregion
  32. #region *** Operations ***
  33. public override string ToString()
  34. {
  35. var sb = new StringBuilder();
  36. sb.Append("Error");
  37. if (Code != 0)
  38. sb.Append("[").Append(Code).Append("]");
  39. sb.Append(":").Append(Message);
  40. return sb.ToString();
  41. }
  42. public CodeException AsCodeException()
  43. {
  44. return new CodeException(Code, Message);
  45. }
  46. #endregion
  47. }
  48. }