mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-23 07:36:31 +01:00
34 lines
1.4 KiB
C#
34 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using TINK.Model.Connector.Filter;
|
|
|
|
namespace TINK.Model.User.Account
|
|
{
|
|
public static class AccountExtensions
|
|
{
|
|
/// <summary> Gets information whether user is logged in or not from account object. </summary>
|
|
/// <param name="p_oAccount">Object to get information from.</param>
|
|
/// <returns>True if user is logged in, false if not.</returns>
|
|
public static bool GetIsLoggedIn(this IAccount p_oAccount)
|
|
{
|
|
return !string.IsNullOrEmpty(p_oAccount.Mail)
|
|
&& !string.IsNullOrEmpty(p_oAccount.SessionCookie);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Filters bike groups depending on whether user has access to all groups of bikes.
|
|
/// Some user may be "TINK"- user only, some "Konrad" and some may be "TINK" and "Konrad" users.
|
|
/// </summary>
|
|
/// <param name="account">Account to filter with.</param>
|
|
/// <param name="filter">Groups to filter.</param>
|
|
/// <returns>Filtered bike groups.</returns>
|
|
public static IEnumerable<string> DoFilter(
|
|
this IAccount account,
|
|
IEnumerable<string> filter)
|
|
{
|
|
|
|
return GetIsLoggedIn(account)
|
|
? GroupFilterFactory.Create(account.Group).DoFilter(filter) // Filter if user is logged in.
|
|
: new NullGroupFilter().DoFilter(filter); // Do not filter if no user is logged in.
|
|
}
|
|
}
|
|
}
|