using System.Collections.Generic;
using TINK.Model.Connector.Filter;
namespace TINK.Model.User.Account
{
public static class AccountExtensions
{
/// Gets information whether user is logged in or not from account object.
/// Object to get information from.
/// True if user is logged in, false if not.
public static bool GetIsLoggedIn(this IAccount account)
{
return !string.IsNullOrEmpty(account.Mail)
&& !string.IsNullOrEmpty(account.SessionCookie);
}
///
/// 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.
///
/// Account to filter with.
/// Groups to filter.
/// Filtered bike groups.
public static IEnumerable DoFilter(
this IAccount account,
IEnumerable 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.
}
}
}