aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Reports/Common/ReportHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Reports/Common/ReportHelper.cs')
-rw-r--r--MediaBrowser.Api/Reports/Common/ReportHelper.cs218
1 files changed, 129 insertions, 89 deletions
diff --git a/MediaBrowser.Api/Reports/Common/ReportHelper.cs b/MediaBrowser.Api/Reports/Common/ReportHelper.cs
index a557248c6..1de0190cf 100644
--- a/MediaBrowser.Api/Reports/Common/ReportHelper.cs
+++ b/MediaBrowser.Api/Reports/Common/ReportHelper.cs
@@ -7,95 +7,135 @@ using System.Threading.Tasks;
namespace MediaBrowser.Api.Reports
{
- public class ReportHelper
- {
- /// <summary> Gets java script localized string. </summary>
- /// <param name="phrase"> The phrase. </param>
- /// <returns> The java script localized string. </returns>
- public static string GetJavaScriptLocalizedString(string phrase)
- {
- var dictionary = BaseItem.LocalizationManager.GetJavaScriptLocalizationDictionary(BaseItem.ConfigurationManager.Configuration.UICulture);
-
- string value;
-
- if (dictionary.TryGetValue(phrase, out value))
- {
- return value;
- }
-
- return phrase;
- }
-
- /// <summary> Gets server localized string. </summary>
- /// <param name="phrase"> The phrase. </param>
- /// <returns> The server localized string. </returns>
- public static string GetServerLocalizedString(string phrase)
- {
- return BaseItem.LocalizationManager.GetLocalizedString(phrase, BaseItem.ConfigurationManager.Configuration.UICulture);
- }
-
- /// <summary> Gets row type. </summary>
- /// <param name="rowType"> The type. </param>
- /// <returns> The row type. </returns>
- public static ReportViewType GetRowType(string rowType)
- {
- if (string.IsNullOrEmpty(rowType))
- return ReportViewType.BaseItem;
-
- ReportViewType rType;
-
- if (!Enum.TryParse<ReportViewType>(rowType, out rType))
- return ReportViewType.BaseItem;
-
- return rType;
- }
-
- /// <summary> Gets header metadata type. </summary>
- /// <param name="header"> The header. </param>
- /// <returns> The header metadata type. </returns>
- public static HeaderMetadata GetHeaderMetadataType(string header)
- {
- if (string.IsNullOrEmpty(header))
- return HeaderMetadata.None;
-
- HeaderMetadata rType;
-
- if (!Enum.TryParse<HeaderMetadata>(header, out rType))
- return HeaderMetadata.None;
-
- return rType;
- }
-
- /// <summary> Convert field to string. </summary>
- /// <typeparam name="T"> Generic type parameter. </typeparam>
- /// <param name="value"> The value. </param>
- /// <param name="fieldType"> Type of the field. </param>
- /// <returns> The field converted to string. </returns>
- public static string ConvertToString<T>(T value, ReportFieldType fieldType)
- {
- if (value == null)
- return "";
- switch (fieldType)
- {
- case ReportFieldType.String:
- return value.ToString();
- case ReportFieldType.Boolean:
- return value.ToString();
- case ReportFieldType.Date:
- return string.Format("{0:d}", value);
- case ReportFieldType.Time:
- return string.Format("{0:t}", value);
- case ReportFieldType.DateTime:
- return string.Format("{0:d}", value);
+ /// <summary> A report helper. </summary>
+ public class ReportHelper
+ {
+ #region [Public Methods]
+
+ /// <summary> Convert field to string. </summary>
+ /// <typeparam name="T"> Generic type parameter. </typeparam>
+ /// <param name="value"> The value. </param>
+ /// <param name="fieldType"> Type of the field. </param>
+ /// <returns> The field converted to string. </returns>
+ public static string ConvertToString<T>(T value, ReportFieldType fieldType)
+ {
+ if (value == null)
+ return "";
+ switch (fieldType)
+ {
+ case ReportFieldType.String:
+ return value.ToString();
+ case ReportFieldType.Boolean:
+ return value.ToString();
+ case ReportFieldType.Date:
+ return string.Format("{0:d}", value);
+ case ReportFieldType.Time:
+ return string.Format("{0:t}", value);
+ case ReportFieldType.DateTime:
+ return string.Format("{0:d}", value);
case ReportFieldType.Minutes:
return string.Format("{0}mn", value);
- case ReportFieldType.Int:
- return string.Format("", value);
- default:
- if (value is Guid)
- return string.Format("{0:N}", value);
- return value.ToString();
- }
- }
- }
+ case ReportFieldType.Int:
+ return string.Format("", value);
+ default:
+ if (value is Guid)
+ return string.Format("{0:N}", value);
+ return value.ToString();
+ }
+ }
+
+ /// <summary> Gets filtered report header metadata. </summary>
+ /// <param name="reportColumns"> The report columns. </param>
+ /// <param name="defaultReturnValue"> The default return value. </param>
+ /// <returns> The filtered report header metadata. </returns>
+ public static List<HeaderMetadata> GetFilteredReportHeaderMetadata(string reportColumns, Func<List<HeaderMetadata>> defaultReturnValue = null)
+ {
+ if (!string.IsNullOrEmpty(reportColumns))
+ {
+ var s = reportColumns.Split('|').Select(x => ReportHelper.GetHeaderMetadataType(x)).Where(x => x != HeaderMetadata.None);
+ return s.ToList();
+ }
+ else
+ if (defaultReturnValue != null)
+ return defaultReturnValue();
+ else
+ return new List<HeaderMetadata>();
+ }
+
+ /// <summary> Gets header metadata type. </summary>
+ /// <param name="header"> The header. </param>
+ /// <returns> The header metadata type. </returns>
+ public static HeaderMetadata GetHeaderMetadataType(string header)
+ {
+ if (string.IsNullOrEmpty(header))
+ return HeaderMetadata.None;
+
+ HeaderMetadata rType;
+
+ if (!Enum.TryParse<HeaderMetadata>(header, out rType))
+ return HeaderMetadata.None;
+
+ return rType;
+ }
+
+ /// <summary> Gets java script localized string. </summary>
+ /// <param name="phrase"> The phrase. </param>
+ /// <returns> The java script localized string. </returns>
+ public static string GetJavaScriptLocalizedString(string phrase)
+ {
+ var dictionary = BaseItem.LocalizationManager.GetJavaScriptLocalizationDictionary(BaseItem.ConfigurationManager.Configuration.UICulture);
+
+ string value;
+
+ if (dictionary.TryGetValue(phrase, out value))
+ {
+ return value;
+ }
+
+ return phrase;
+ }
+
+ /// <summary> Gets report view type. </summary>
+ /// <param name="rowType"> The type. </param>
+ /// <returns> The report view type. </returns>
+ public static ReportViewType GetReportViewType(string rowType)
+ {
+ if (string.IsNullOrEmpty(rowType))
+ return ReportViewType.ReportData;
+
+ ReportViewType rType;
+
+ if (!Enum.TryParse<ReportViewType>(rowType, out rType))
+ return ReportViewType.ReportData;
+
+ return rType;
+ }
+
+ /// <summary> Gets row type. </summary>
+ /// <param name="rowType"> The type. </param>
+ /// <returns> The row type. </returns>
+ public static ReportIncludeItemTypes GetRowType(string rowType)
+ {
+ if (string.IsNullOrEmpty(rowType))
+ return ReportIncludeItemTypes.BaseItem;
+
+ ReportIncludeItemTypes rType;
+
+ if (!Enum.TryParse<ReportIncludeItemTypes>(rowType, out rType))
+ return ReportIncludeItemTypes.BaseItem;
+
+ return rType;
+ }
+
+ /// <summary> Gets server localized string. </summary>
+ /// <param name="phrase"> The phrase. </param>
+ /// <returns> The server localized string. </returns>
+ public static string GetServerLocalizedString(string phrase)
+ {
+ return BaseItem.LocalizationManager.GetLocalizedString(phrase, BaseItem.ConfigurationManager.Configuration.UICulture);
+ }
+
+ #endregion
+
+ }
}