sharee.bike-App/TINKLib/Model/ITinkApp.cs
2021-11-14 23:27:29 +01:00

103 lines
3.6 KiB
C#

using Serilog.Events;
using System;
using System.Threading;
using TINK.Model.Connector;
using TINK.Model.Device;
using TINK.Services.BluetoothLock;
using TINK.Model.Services.CopriApi.ServerUris;
using TINK.Settings;
using TINK.ViewModel.Map;
using TINK.ViewModel.Settings;
using TINK.Services;
using TINK.Model.Station;
using System.Collections.Generic;
namespace TINK.Model
{
public interface ITinkApp
{
/// <summary> Update connector from depending on whether user is logged in or not.</summary>
void UpdateConnector();
/// <summary> Saves object to file. </summary>
void Save();
/// <summary> Holds the filter which is applied on the map view. Either TINK or Konrad stations are displayed. </summary>
IGroupFilterMapPage GroupFilterMapPage { get; set; }
/// <summary> Holds the user of the app. </summary>
User.User ActiveUser { get; }
/// <summary>Sets flag whats new page was already shown to true. </summary>
void SetWhatsNewWasShown();
/// <summary> Holds the system to copri.</summary>
IFilteredConnector GetConnector(bool isConnected);
/// <summary> Name of the station which is selected. </summary>
IStation SelectedStation { get; set; }
/// <summary>Polling periode.</summary>
PollingParameters Polling { get; set; }
TimeSpan ExpiresAfter { get; set; }
/// <summary> Holds status about whants new page. </summary>
WhatsNew WhatsNew { get; }
/// <summary> Gets whether device is connected to internet or not. </summary>
bool GetIsConnected();
/// <summary> Action to post to GUI thread.</summary>
Action<SendOrPostCallback, object> PostAction { get; }
/// <summary> Holds the uri which is applied after restart. </summary>
Uri NextActiveUri { get; set; }
/// <summary> Holds the filters loaded from settings. </summary>
IGroupFilterSettings FilterGroupSetting { get; set; }
/// <summary> Value indicating whether map is centerted to current position or not. </summary>
bool CenterMapToCurrentLocation { get; set; }
/// <summary> Holds the map area to display. </summary>
Xamarin.Forms.GoogleMaps.MapSpan MapSpan { get; set; }
bool LogToExternalFolder { get; set; }
bool IsSiteCachingOn { get; set; }
/// <summary> Gets the minimum logging level. </summary>
LogEventLevel MinimumLogEventLevel { get; set; }
/// <summary> Gets a value indicating whether reporting level is verbose or not.</summary>
bool IsReportLevelVerbose { get; set; }
/// <summary> Updates logging level. </summary>
/// <param name="p_oNewLevel">New level to set.</param>
void UpdateLoggingLevel(LogEventLevel p_oNewLevel);
/// <summary>Holds uris of copri servers. </summary>
CopriServerUriList Uris { get; }
/// <summary> Holds the different lock service implementations.</summary>
LocksServicesContainerMutable LocksServices { get; }
/// <summary> Holds available app themes.</summary>
ServicesContainerMutable<object> Themes { get; }
/// <summary> Reference of object which provides device information. </summary>
ISmartDevice SmartDevice { get; }
/// <summary> Holds the folder where settings files are stored. </summary>
string SettingsFileFolder { get; }
/// <summary> Holds the external path. </summary>
string ExternalFolder { get; }
/// <summary> Holds the stations availalbe. </summary>
IEnumerable<IStation> Stations {get; set;}
}
}