221 lines
6.6 KiB
C#
221 lines
6.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using xModels.Dtos;
|
|
using XFileDto = xFileService.Models.Dtos.XFileDto;
|
|
using xWebinarService.Models.Dtos;
|
|
|
|
namespace xWebinarService.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// an Interface to Provides Webinar Provider Actions ...
|
|
/// </summary>
|
|
public interface IXWebinarServiceControllerActions
|
|
{
|
|
//
|
|
#region Actions ...
|
|
/// <summary>
|
|
/// Create Webinar ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="tags"></param>
|
|
/// <param name="files"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XWebinarDto>> CreateWebinar(
|
|
[FromForm] XWebinarDto item,
|
|
[FromQuery] string tags = null,
|
|
[FromForm] IFormFileCollection files = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Update a Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XWebinarDto>> UpdateWebinar(
|
|
[FromRoute] Guid id,
|
|
[FromBody] XWebinarDto item
|
|
);
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XWebinarDto>> GetWebinar(
|
|
[FromRoute] Guid id
|
|
);
|
|
|
|
/// <summary>
|
|
/// Retrieve all Exists Webinars ...
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
Task<ActionResult<IEnumerable<XWebinarDto>>> GetWebinars();
|
|
|
|
/// <summary>
|
|
/// Query Webinars ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XQueryResult<XWebinarDto>>> QueryWebinars(
|
|
[FromQuery] XQuery query
|
|
);
|
|
|
|
/// <summary>
|
|
/// Query Owned Webinars ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XQueryResult<XWebinarDto>>> QueryOwnedWebinars(
|
|
[FromQuery] XQuery query
|
|
);
|
|
|
|
/// <summary>
|
|
/// Query Joinable Webinars ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XQueryResult<XWebinarDto>>> QueryJoinableWebinars(
|
|
[FromQuery] XQuery query
|
|
);
|
|
|
|
/// <summary>
|
|
/// Remove Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<bool>> RemoveWebinar(
|
|
[FromRoute] Guid id
|
|
);
|
|
#endregion
|
|
|
|
//
|
|
#region WebinarSubscriber ...
|
|
/// <summary>
|
|
/// Subscribe a User to Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="subscriberId"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<bool>> Subscribe(
|
|
[FromRoute] Guid id,
|
|
[FromRoute] string subscriberId
|
|
);
|
|
|
|
/// <summary>
|
|
/// Check Specified User Subscribed on a Webinar or not ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="subscriberId"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<bool>> IsSubscribed(
|
|
[FromRoute] Guid id,
|
|
[FromRoute] string subscriberId
|
|
);
|
|
|
|
/// <summary>
|
|
/// Unsubscribe Specified User from a Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="subscriberId"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<bool>> Unsubscribe(
|
|
[FromRoute] Guid id,
|
|
[FromRoute] string subscriberId
|
|
);
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Subscriber ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="subscriberId"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XWebinarSubscriberDto>> GetSubscriber(
|
|
[FromRoute] Guid id,
|
|
[FromRoute] string subscriberId
|
|
);
|
|
|
|
/// <summary>
|
|
/// Get all Specified Webinars Subscribers ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<IEnumerable<XWebinarSubscriberDto>>> GetSubscribers(
|
|
[FromRoute] Guid id
|
|
);
|
|
|
|
/// <summary>
|
|
/// Query Specified Webinar's Subscribers ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<XQueryResult<XWebinarSubscriberDto>>> QuerySubscribers(
|
|
[FromRoute] Guid id,
|
|
[FromQuery] XQuery query
|
|
);
|
|
#endregion
|
|
|
|
//
|
|
#region File Actions ...
|
|
/// <summary>
|
|
/// Upload Specified Files for Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="files"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<IEnumerable<XFileDto>>> UploadFiles(
|
|
[FromRoute] Guid id,
|
|
[FromForm] IFormFileCollection files
|
|
);
|
|
|
|
/// <summary>
|
|
/// Remove Specified (All) Files of Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="ids"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<IEnumerable<XFileDto>>> RemoveFiles(
|
|
[FromRoute] Guid id,
|
|
[FromQuery] string ids = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Webinar's Files ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult<IEnumerable<XFileDto>>> GetFiles(
|
|
[FromRoute] Guid id
|
|
);
|
|
#endregion
|
|
|
|
//
|
|
#region Tags Actions ...
|
|
/// <summary>
|
|
/// Attach Specified Tags To Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="tags"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult> TagsAttach(
|
|
[FromRoute] Guid id,
|
|
[FromQuery] string tags
|
|
);
|
|
|
|
/// <summary>
|
|
/// Detach Specified Tags From Specified Webinar ...
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="tags"></param>
|
|
/// <returns></returns>
|
|
Task<ActionResult> TagsDetach(
|
|
[FromRoute] Guid id,
|
|
[FromQuery] string tags
|
|
);
|
|
#endregion
|
|
}
|
|
} |