ReportHelper.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using MediaBrowser.Controller.Entities;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace MediaBrowser.Api.Reports
  6. {
  7. /// <summary> A report helper. </summary>
  8. public class ReportHelper
  9. {
  10. #region [Public Methods]
  11. /// <summary> Convert field to string. </summary>
  12. /// <typeparam name="T"> Generic type parameter. </typeparam>
  13. /// <param name="value"> The value. </param>
  14. /// <param name="fieldType"> Type of the field. </param>
  15. /// <returns> The field converted to string. </returns>
  16. public static string ConvertToString<T>(T value, ReportFieldType fieldType)
  17. {
  18. if (value == null)
  19. return "";
  20. switch (fieldType)
  21. {
  22. case ReportFieldType.String:
  23. return value.ToString();
  24. case ReportFieldType.Boolean:
  25. return value.ToString();
  26. case ReportFieldType.Date:
  27. return string.Format("{0:d}", value);
  28. case ReportFieldType.Time:
  29. return string.Format("{0:t}", value);
  30. case ReportFieldType.DateTime:
  31. return string.Format("{0:d}", value);
  32. case ReportFieldType.Minutes:
  33. return string.Format("{0}mn", value);
  34. case ReportFieldType.Int:
  35. return string.Format("", value);
  36. default:
  37. if (value is Guid)
  38. return string.Format("{0:N}", value);
  39. return value.ToString();
  40. }
  41. }
  42. /// <summary> Gets filtered report header metadata. </summary>
  43. /// <param name="reportColumns"> The report columns. </param>
  44. /// <param name="defaultReturnValue"> The default return value. </param>
  45. /// <returns> The filtered report header metadata. </returns>
  46. public static List<HeaderMetadata> GetFilteredReportHeaderMetadata(string reportColumns, Func<List<HeaderMetadata>> defaultReturnValue = null)
  47. {
  48. if (!string.IsNullOrEmpty(reportColumns))
  49. {
  50. var s = reportColumns.Split('|').Select(x => ReportHelper.GetHeaderMetadataType(x)).Where(x => x != HeaderMetadata.None);
  51. return s.ToList();
  52. }
  53. else
  54. if (defaultReturnValue != null)
  55. return defaultReturnValue();
  56. else
  57. return new List<HeaderMetadata>();
  58. }
  59. /// <summary> Gets header metadata type. </summary>
  60. /// <param name="header"> The header. </param>
  61. /// <returns> The header metadata type. </returns>
  62. public static HeaderMetadata GetHeaderMetadataType(string header)
  63. {
  64. if (string.IsNullOrEmpty(header))
  65. return HeaderMetadata.None;
  66. HeaderMetadata rType;
  67. if (!Enum.TryParse<HeaderMetadata>(header, out rType))
  68. return HeaderMetadata.None;
  69. return rType;
  70. }
  71. /// <summary> Gets java script localized string. </summary>
  72. /// <param name="phrase"> The phrase. </param>
  73. /// <returns> The java script localized string. </returns>
  74. public static string GetJavaScriptLocalizedString(string phrase)
  75. {
  76. return BaseItem.LocalizationManager.GetLocalizedString(phrase);
  77. }
  78. /// <summary> Gets report view type. </summary>
  79. /// <param name="rowType"> The type. </param>
  80. /// <returns> The report view type. </returns>
  81. public static ReportViewType GetReportViewType(string rowType)
  82. {
  83. if (string.IsNullOrEmpty(rowType))
  84. return ReportViewType.ReportData;
  85. ReportViewType rType;
  86. if (!Enum.TryParse<ReportViewType>(rowType, out rType))
  87. return ReportViewType.ReportData;
  88. return rType;
  89. }
  90. /// <summary> Gets row type. </summary>
  91. /// <param name="rowType"> The type. </param>
  92. /// <returns> The row type. </returns>
  93. public static ReportIncludeItemTypes GetRowType(string rowType)
  94. {
  95. if (string.IsNullOrEmpty(rowType))
  96. return ReportIncludeItemTypes.BaseItem;
  97. ReportIncludeItemTypes rType;
  98. if (!Enum.TryParse<ReportIncludeItemTypes>(rowType, out rType))
  99. return ReportIncludeItemTypes.BaseItem;
  100. return rType;
  101. }
  102. /// <summary> Gets report display type. </summary>
  103. /// <param name="displayType"> Type of the display. </param>
  104. /// <returns> The report display type. </returns>
  105. public static ReportDisplayType GetReportDisplayType(string displayType)
  106. {
  107. if (string.IsNullOrEmpty(displayType))
  108. return ReportDisplayType.ScreenExport;
  109. ReportDisplayType rType;
  110. if (!Enum.TryParse<ReportDisplayType>(displayType, out rType))
  111. return ReportDisplayType.ScreenExport;
  112. return rType;
  113. }
  114. /// <summary> Gets server localized string. </summary>
  115. /// <param name="phrase"> The phrase. </param>
  116. /// <returns> The server localized string. </returns>
  117. public static string GetServerLocalizedString(string phrase)
  118. {
  119. return BaseItem.LocalizationManager.GetLocalizedString(phrase);
  120. }
  121. #endregion
  122. }
  123. }