108 lines
3.7 KiB
C#
108 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using xModels.Dtos;
|
|
using xModels.Interfaces;
|
|
using xPushService.Models;
|
|
|
|
namespace xPushService.Interfaces {
|
|
public interface IXPushConnectionStore : IXBaseStore<XPushConnectionDto, string> {
|
|
//
|
|
#region Custom ...
|
|
/// <summary>
|
|
/// retrieve specific connection by it's Id ...
|
|
/// </summary>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XPushConnectionDto> GetByConnectionId (string connectionId);
|
|
|
|
/// <summary>
|
|
/// retrieve specific user's connections ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<XPushConnectionDto>> GetByUserName (string userName);
|
|
|
|
/// <summary>
|
|
/// retrieve specific user's connected device connection
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="device"></param>
|
|
/// <returns></returns>
|
|
Task<XPushConnectionDto> GetByUserDevice (string userName, XDeviceDto device);
|
|
|
|
/// <summary>
|
|
/// check a connection exists or not by it's id ...
|
|
/// </summary>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> IsExistsConnectionId (string connectionId);
|
|
|
|
/// <summary>
|
|
/// check specific user connected or not ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <returns></returns>
|
|
Task<bool> IsExistsUser (string userName);
|
|
|
|
/// <summary>
|
|
/// retrieve specific user's connected devices ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="device"></param>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<XDeviceDto>> GetUserDevices (string userName);
|
|
|
|
/// <summary>
|
|
/// remove specific connection by it's id ...
|
|
/// </summary>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> RemoveByConnectionId (string connectionId);
|
|
|
|
/// <summary>
|
|
/// remove specified user's connected device connection ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="device"></param>
|
|
/// <returns></returns>
|
|
Task<bool> RemoveByUserDevice (string userName, XDeviceDto device);
|
|
|
|
/// <summary>
|
|
/// remove specific user's all connected devices ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <returns></returns>
|
|
Task<bool> RemoveUser (string userName);
|
|
|
|
/// <summary>
|
|
/// Get specific connections last seen ...
|
|
/// </summary>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<DateTime> GetLastSeenByConnectionId (string connectionId);
|
|
|
|
/// <summary>
|
|
/// get specific user's last seen ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <returns></returns>
|
|
Task<DateTime> GetLastSeenByUserName (string userName);
|
|
|
|
/// <summary>
|
|
/// get specific user's connected device last seen ...
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="device"></param>
|
|
/// <returns></returns>
|
|
Task<DateTime> GetLastSeenByUserDevice (string userName, XDeviceDto device);
|
|
|
|
/// <summary>
|
|
/// Update Connection last seen ...
|
|
/// </summary>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> UpdateLastSeen(string connectionId);
|
|
#endregion
|
|
}
|
|
} |