using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using C4IT.FASD.Base; using FasdCockpitBase.Models; namespace C4IT.FASD.Cockpit.Communication { public abstract class cFasdCockpitCommunicationBase { public static cFasdCockpitCommunicationBase Instance { get; set; } public static cF4sdUserInfo CockpitUserInfo = null; public static object CockpitUserInfoLock = new object(); public Dictionary CachedHealthCardRawData { get; set; } = new Dictionary(); public delegate Task CheckConnectionStatusDelegate(); public CheckConnectionStatusDelegate CheckConnectionStatus; public cF4sdCockpitCommunicationM42Base M42 = new cF4sdCockpitCommunicationM42Base(); public abstract bool IsDemo(); public abstract bool CheckConnectionInfo(); public abstract Task CheckConnection(Version minServerVersion); public abstract Task GetUserIdByAccount(string userName, string userDomain); public abstract Task WinLogon(); public abstract Task RegisterExternalTokenAsync(cF4SDTokenRegistration Token); public abstract Task GetAdditionalUserInfo(enumAdditionalAuthentication Type); public abstract Task IsAnalyticsModuleActive(); public abstract Task CreateUserSession(cF4SDUserSessionParameters sessionParameter); public abstract Task CloseUserSession(Guid sessionId); public abstract Task StartCase(cF4SDCaseParameters caseParameters); public abstract Task UpdateCase(cF4SDCaseStatusParameters caseStatusParameters, List caseTimes); public abstract Task KeepAliveCase(Guid caseId); public abstract Task KeepAliveSession(Guid sessionId); public abstract Task ReportQuickAction(cF4SDQuickActionParameters quickActionParameters); public static bool Debug_apiValues = false; public static bool Debug_apiTiming = false; public abstract Task GetConfiguration(enumFasdConfigurationType configType); public abstract Task GetSearchResultsStart(string searchValue, CancellationToken cancellationToken); public abstract Task GetSearchResultsResult(Guid taskID, CancellationToken cancellationToken); public abstract Task GetSearchResultsStop(Guid taskID, CancellationToken cancellationToken); public abstract Task GetPhoneSearchResults(cPhoneSearchParameters searchInfo); public abstract Task GetComputerSearchResults(string Name, string Domain); public abstract Task GetUserSearchResults(string Name, List SIDs); public abstract Task StartGatheringRelations(IEnumerable relatedTo, CancellationToken token); public abstract Task GetStagedRelations(Guid id, CancellationToken token); public abstract Task> GetSearchResultRelations(enumF4sdSearchResultClass resultType, List searchResults); public abstract Task> GetTicketOverviewRelations(string key, bool useRoleScope, int count); public abstract Task> GetTicketOverviewCounts(IEnumerable keys, bool useRoleScope); public abstract Task GetHealthCardData(cF4sdHealthCardRawDataRequest requestData); public abstract Task GetHealthCardData(Guid healthCardId); public abstract Task> GetDetailsData(cF4sdHealthCardRawDataRequest requestData); public abstract Task GetPagedDataCount(cF4sdHealthSelectionDataRequest requestData); public abstract Task GetPagedData(cF4sdHealthSelectionDataRequest requestData); public abstract Task UpdateHealthcardTableData(cF4SDWriteParameters dataParameter); public abstract Task Matrix42TicketFinalization(cApiM42Ticket ticketData); public abstract Task>> GetQuickActionHistory(string QuickActionName, int OrgId, int DeviceId, int? UserId); public abstract Task GetAgentApiAccessInfo(); public abstract Task GetCockpitConfiguration(); public abstract Task GetAgentOnlineStatus(int AgentDeviceId, int? AgentUserId = null); public abstract Task GetQuickActionOfAgent(int ScriptId); public abstract Task> GetQuickActionsOfAgent(); public abstract Task> GetQuickActionsOfServer(); public abstract Task ActualizeAgentData(int AgentDeviceId, int? AgentUserId = null); public abstract Task GetActualizeAgentDataStatus(Guid actualizeId, enumFasdInformationClass informationClass); public abstract Task TryActivateDirectConnection(int DeviceId); public abstract Task StopDirectConnection(Guid connectionId); public abstract Task IsDirectConnectionUp(Guid connectionId); public abstract Task DirectConnectionExtendDuration(Guid connectonId, int timeOutInSeconds); public abstract Task RunAgentScript(cF4sdQuickActionRemote Script, int OrgCode, int DeviceId, int? DeviceAccountId, string Parameters); public abstract Task GetAgentQuickActionStatus(int TaskId); public abstract Task GetAgentRevision(int RevisionId, int OrgId); public abstract Task CancelAgentTask(int TaskId); public abstract Task InitializeAfterOnlineAsync(); public abstract Task TerminateAsync(); public abstract Uri GetMediaContentUri(string ContentRelPath); } public enum enumConnectionStatus { unknown = 0, serverNotFound, serverResponseError, incompatibleServerVersion, serverNotConfigured, serverStarting, connected, } public enum enumQuickActionStatus { Unknown = -1, ConnectingToClient = 1, WaitingForUserAcceptance = 2, Running = 3, Finished = 4, Cancelled = 5 } public class cCheckConnectionResult { public enumConnectionStatus ConnectionStatus { get; set; } public cFasdApiConnectionInfo ApiConnectionInfo { get; set; } } public class cPhoneSearchParameters { public string phone { get; set; } public string name { get; set; } = null; } public class cComputerDomainSearchParameters { public string name { get; set; } public string domain { get; set; } } public class cUserSidSearchParameters { public string name { get; set; } public string sids { get; set; } } public class cTicketSearchParameters { public string ticketName { get; set; } public string ticketId { get; set; } public string userName { get; set; } public string sids { get; set; } } }