Initial Commit ...
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
using System.Threading.Tasks;
|
||||
using xPushService.Models;
|
||||
|
||||
namespace xPushService.Interfaces {
|
||||
public interface IXAuthorizedPushActions {
|
||||
/// <summary>
|
||||
/// an authenticated user can push a message to others ...
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task UserMessageAsync (XPushMessage message);
|
||||
|
||||
/// <summary>
|
||||
/// an admin user can push a message to others ...
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task AdminMessageAsync (XPushMessage message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using xPushService.Models;
|
||||
|
||||
namespace xPushService.Interfaces {
|
||||
public interface IXGroupsPushActions {
|
||||
/// <summary>
|
||||
/// send a message to specific group ...
|
||||
/// </summary>
|
||||
/// <param name="groupName"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SendMessageToGroup (
|
||||
string groupName,
|
||||
XPushMessage message
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// send a message to specific groups ...
|
||||
/// </summary>
|
||||
/// <param name="groupNames"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SendMessageToGroups (
|
||||
IEnumerable<string> groupNames,
|
||||
XPushMessage message
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// add a connection to specific group ...
|
||||
/// </summary>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> AddConnectionToGroup (
|
||||
string connectionId,
|
||||
string groupName
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// remove specific connection from a group ...
|
||||
/// </summary>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> RemoveConnectionFromGroup (
|
||||
string connectionId,
|
||||
string groupName
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// retrieve all groups name ...
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<string>> GetGroupNames ();
|
||||
|
||||
/// <summary>
|
||||
/// retrieve all groups with it's connections ...
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XPushGroupDto>> GetGroups ();
|
||||
|
||||
/// <summary>
|
||||
/// remove all connections of specific group ...
|
||||
/// </summary>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> RemoveGroupConnections (string groupName);
|
||||
|
||||
/// <summary>
|
||||
/// retrieve all groups name for specific connection ...
|
||||
/// </summary>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<string>> GetConnectionGroups (string connectionId);
|
||||
|
||||
/// <summary>
|
||||
/// retrieve all connections in specific group ...
|
||||
/// </summary>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XPushConnectionDto>> GetGroupConnections (string groupName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
using xModels.Interfaces;
|
||||
using xPushService.Models;
|
||||
|
||||
namespace xPushService.Interfaces {
|
||||
public interface IXPushGroupStore : IXBaseStore<XPushGroupDto, string> { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace xPushService.Interfaces
|
||||
{
|
||||
public interface IXPushProvider
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using xModels.Dtos;
|
||||
using xPushService.Models;
|
||||
|
||||
namespace xPushService.Interfaces {
|
||||
public interface IXUserPushActions {
|
||||
/// <summary>
|
||||
/// add an specific user to a group ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> AddUserToGroup (
|
||||
string userName,
|
||||
string groupName
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// add an specific user's connected device to a group ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <param name="device"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> AddUserDeviceToGroup (
|
||||
string userName,
|
||||
string groupName,
|
||||
XDeviceDto device
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// remove a user from specific groups ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> RemoveUserFromGroup (
|
||||
string userName,
|
||||
string groupName
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// remove specific user's connected device from a group ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="groupName"></param>
|
||||
/// <param name="device"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> RemoveUserDeviceFromGroup (
|
||||
string userName,
|
||||
string groupName,
|
||||
XDeviceDto device
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// send a message to specific user ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SendMessageToUser (
|
||||
string userName,
|
||||
XPushMessage message
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// send a message to a user's specific connected device ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <param name="device"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SendMessageToUserDevice (
|
||||
string userName,
|
||||
XPushMessage message,
|
||||
XDeviceDto device
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// send a message to specific users ...
|
||||
/// </summary>
|
||||
/// <param name="userNamea"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> SendMessageToUsers (
|
||||
IEnumerable<string> userNames,
|
||||
XPushMessage message
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// retrieve all users groups ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<string>> GetUserGroups (string userName);
|
||||
|
||||
/// <summary>
|
||||
/// retrieve specific user's connected device ...
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XPushConnectionDto>> GetUserConnections (string userName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
using xModels.Interfaces;
|
||||
using xPushService.Models;
|
||||
|
||||
namespace xPushService.Interfaces {
|
||||
public interface IXWebRTCConnectionStore : IXBaseStore<XWebRTCConnectionDto, string> { }
|
||||
}
|
||||
Reference in New Issue
Block a user