using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using xModels.Dtos;
using xWebinarService.Models.Dtos;
namespace xWebinarService.Interfaces
{
///
/// an Interface to Provides Webinar Provider Actions ...
///
public interface IXWebinarServiceControllerActions
{
//
#region Actions ...
///
/// Create Webinar ...
///
///
///
Task> CreateWebinar([FromBody] XWebinarDto item);
///
/// Update a Webinar ...
///
///
///
Task> UpdateWebinar([FromBody] XWebinarDto item);
///
/// Retrieve Specified Webinar ...
///
///
///
Task> GetWebinar([FromQuery] Guid id);
///
/// Retrieve all Exists Webinars ...
///
///
Task>> GetWebinars();
///
/// Retrieve all Exists Webinar Ids ...
///
///
ActionResult> GetWebinarIds();
///
/// Query Webinars ...
///
///
///
Task>> QueryWebinars([FromQuery] XQuery query);
///
/// Query Webinar Ids ...
///
///
///
ActionResult> QueryWebinarIds([FromQuery] XQuery query);
///
/// Remove Specified Webinar ...
///
///
///
///
Task> RemoveWebinar(
[FromQuery] Guid webinarId
);
#endregion
//
#region WebinarSubscriber ...
///
/// Subscribe a User to Webinar ...
///
///
///
///
///
Task> Subscribe(
[FromQuery] Guid webinarId,
[FromQuery] string subscriberId
);
///
/// Check Specified User Subscribed on a Webinar or not ...
///
///
///
///
Task> IsSubscribed(
[FromQuery] Guid webinarId,
[FromQuery] string subscriberId
);
///
/// Unsubscribe Specified User from a Specified Webinar ...
///
///
///
///
///
Task> Unsubscribe(
[FromQuery] Guid webinarId,
[FromQuery] string subscriberId
);
///
/// Retrieve Specified Subscriber ...
///
///
///
///
///
Task> GetSubscriber(
[FromQuery] Guid webinarId,
[FromQuery] string subscriberId
);
///
/// Get all Specified Webinars Subscribers ...
///
///
///
///
Task>> GetSubscribers(
[FromQuery] Guid webinarId
);
///
/// Query Specified Webinar's Subscribers ...
///
///
///
///
///
Task>> QuerySubscribers(
[FromQuery] XQuery query,
[FromQuery] Guid webinarId
);
#endregion
}
}