Files
xPushService/Interfaces/IXUserPushActions.cs
T
2024-01-25 04:47:14 +03:30

105 lines
3.2 KiB
C#

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);
}
}