sharee.bike-App/TINKLib/Model/User/Account/AccountExtensions.cs
Anja Müller-Meißner 0468955d49 Version 3.0.338
2022-09-08 09:55:14 +02:00

35 lines
1.2 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="account">Object to get information from.</param>
/// <returns>True if user is logged in, false if not.</returns>
public static bool GetIsLoggedIn(this IAccount account)
{
return !string.IsNullOrEmpty(account.Mail)
&& !string.IsNullOrEmpty(account.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.
}
}
}