implement Webinar and WebinarSubscriber Entity and Dto (s) and Data Requirements ...
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarDtoHub : IXBaseDtoHub<XWebinar, XWebinarDto, Guid>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarRepositoryService : IXBaseRepositoryService<XWebinar, XWebinarDto, Guid>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
using xWebinarService.Providers.Dtos;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarServiceProvider : IXBaseDtoProvider<XWebinar, XWebinarDto, Guid, XWebinarDtoHub>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarSubscriberDtoHub : IXBaseDtoHub<XWebinarSubscriber, XWebinarSubscriberDto, int>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarSubscriberRepositoryService : IXBaseRepositoryService<XWebinarSubscriber, XWebinarSubscriberDto, int>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace xWebinarService.Interfaces.Dtos
|
||||
{
|
||||
public interface IXWebinarSubscriberServiceProvider
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using System;
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarEntityHub : IXBaseEntityHub<XWebinar, Guid>
|
||||
{ }
|
||||
}
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarSubscriberEvents : IXBaseRepositoryEvents<XWebinarSubscriber>
|
||||
public interface IXWebinarKeyGenerator : IXKeyGenerator<XWebinar, Guid>
|
||||
{ }
|
||||
}
|
||||
+1
-1
@@ -3,6 +3,6 @@ using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarEvents : IXBaseRepositoryEvents<XWebinar>
|
||||
public interface IXWebinarRepositoryEvents : IXBaseRepositoryEvents<XWebinar>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
using xWebinarService.Providers.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarRepositoryProvider : IXBaseEntityProvider<XWebinar, Guid, XWebinarEntityHub>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarSubscriberEntityHub : IXBaseEntityHub<XWebinarSubscriber, int>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarSubscriberKeyGenerator : IXKeyGenerator<XWebinarSubscriber, int>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarSubscriberRepositoryEvents : IXBaseRepositoryEvents<XWebinarSubscriber>
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using xPushService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
using xWebinarService.Providers.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces.Entities
|
||||
{
|
||||
public interface IXWebinarSubscriberRepositoryProvider : IXBaseEntityProvider<XWebinarSubscriber, int, XWebinarSubscriberEntityHub>
|
||||
{ }
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
using xStringService.Interfaces;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarDescriptionResourceProvider : IXBaseStringResourceProvider
|
||||
{ }
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
using System;
|
||||
using xFileService.Interfaces;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarFileProvider : IXBaseFileProvider<Guid>
|
||||
{ }
|
||||
}
|
||||
@@ -1,395 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using xDataService.Configuration;
|
||||
using xIdentityModels.Models;
|
||||
using xIdentityService.Interfaces;
|
||||
using xModels.Dtos;
|
||||
using xTagService.Models.Dtos;
|
||||
using xWebinarService.Hubs;
|
||||
using xWebinarService.Interfaces.Entities;
|
||||
using xWebinarService.Models.Dtos;
|
||||
using xWebinarService.Models.Entities;
|
||||
using XFileDto = xFileService.Models.Dtos.XFileDto;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarProvider
|
||||
{
|
||||
//
|
||||
#region Props ...
|
||||
IHubContext<XWebinarEntityHub> Hub { get; }
|
||||
IXIdentityProvider IdentityProvider { get; }
|
||||
IXWebinarRepository WebinarRepository { get; }
|
||||
IXWebinarTagProvider WebinarTagProvider { get; }
|
||||
IXWebinarFileProvider WebinarFileProvider { get; }
|
||||
XDataServiceConfiguration DataSercviceConfiguration { get; }
|
||||
IXWebinarTitleResourceProvider TitleResourceProvider { get; }
|
||||
IXWebinarSubscriberRepository WebinarSubscriberRepository { get; }
|
||||
IXWebinarDescriptionResourceProvider DescriptionResourceProvider { get; }
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Tools ...
|
||||
/// <summary>
|
||||
/// Converts Specified XWebinar Entity to it's Corresponding Dto Presentation
|
||||
/// and also Fill Owner and Title/Description Resources ...
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarDto> ToXWebinarDto(XWebinar model);
|
||||
|
||||
/// <summary>
|
||||
/// Converts Specified WebinarSubscriber Entity to it's Dto Presentation ...
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarSubscriberDto> ToXWebinarSubscriberDto(XWebinarSubscriber model);
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Actions ...
|
||||
/// <summary>
|
||||
/// Create Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <param name="tags"></param>
|
||||
/// <param name="files"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarDto> CreateWebinar(
|
||||
XWebinarDto item,
|
||||
IEnumerable<string> tags = null,
|
||||
IFormFileCollection files = null,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Update a Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarDto> UpdateWebinar(
|
||||
XWebinarDto item,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarDto> GetWebinar(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve all Exists Webinars ...
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XWebinarDto>> GetWebinars();
|
||||
|
||||
/// <summary>
|
||||
/// Query Webinars ...
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XWebinarDto>> QueryWebinars(XQuery query);
|
||||
|
||||
/// <summary>
|
||||
/// Conditional Query Webinars ...
|
||||
/// </summary>
|
||||
/// <param name="whereClause"></param>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XWebinarDto>> ConditionalQueryWebinars(
|
||||
Expression<Func<XWebinarDto, bool>> whereClause,
|
||||
XQuery query
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Query Owned Webinars ...
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XWebinarDto>> QueryOwnedWebinars(
|
||||
XQuery query,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Query Joinable Webinars ...
|
||||
/// </summary>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XWebinarDto>> QueryJoinableWebinars(
|
||||
XQuery query,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Remove Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> RemoveWebinar(
|
||||
Guid webinarId,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region WebinarSubscriber ...
|
||||
/// <summary>
|
||||
/// Subscribe a User to Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="subscriberId"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Subscribe(
|
||||
Guid webinarId,
|
||||
string subscriberId,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Check Specified User Subscribed on a Webinar or not ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="subscriberId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> IsSubscribed(
|
||||
Guid webinarId,
|
||||
string subscriberId,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Unsubscribe Specified User from a Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="subscriberId"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> Unsubscribe(
|
||||
Guid webinarId,
|
||||
string subscriberId,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve Specified Subscriber ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="subscriberId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<XWebinarSubscriberDto> GetSubscriber(
|
||||
Guid webinarId,
|
||||
string subscriberId,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Get all Specified Webinars Subscribers ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XWebinarSubscriberDto>> GetSubscribers(
|
||||
Guid webinarId,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Query Specified Webinar's Subscribers ...
|
||||
/// </summary>
|
||||
/// <param name="webinarId"></param>
|
||||
/// <param name="query"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XWebinarSubscriberDto>> QuerySubscribers(
|
||||
Guid webinarId,
|
||||
XQuery query,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region File Actions ...
|
||||
/// <summary>
|
||||
/// Upload Files ...
|
||||
/// </summary>
|
||||
/// <param name="forProvidedId"></param>
|
||||
/// <param name="files"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XFileDto>> UploadFiles(
|
||||
Guid id,
|
||||
IFormFileCollection files,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
string connectionId = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Get Webinar Files ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XFileDto>> GetFiles(
|
||||
Guid id,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Stream Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<FileStreamResult> StreamFile(
|
||||
Guid id,
|
||||
Guid fileId
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Stream Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<PhysicalFileResult> DownloadFile(
|
||||
Guid id,
|
||||
Guid fileId
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Attach Provided Files to Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="ids"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task AttachFiles(
|
||||
Guid id,
|
||||
string ids,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Detach Provided Files to Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="ids">if null, detach all files ...</param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task DetachFiles(
|
||||
Guid id,
|
||||
string ids,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Tags Actions ...
|
||||
/// <summary>
|
||||
/// Attach Tag to Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="tag"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="forceAttachToFiles"></param>
|
||||
/// <returns></returns>
|
||||
Task AttachTag(
|
||||
Guid id,
|
||||
string tag,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
bool forceAttachToFiles = true
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Detach Tag fro Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="tag"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="forceAttachToFiles"></param>
|
||||
/// <returns></returns>
|
||||
Task DetachTag(
|
||||
Guid id,
|
||||
string tag,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
bool forceDetachFromFiles = true
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Attach Tags for Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="tags"></param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="forceAttachToFiles"></param>
|
||||
/// <returns></returns>
|
||||
Task AttachTags(
|
||||
Guid id,
|
||||
string tags,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
bool forceAttachToFiles = true
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Detach Tags for Specified File ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="tags">if nulls, detach all tags ...</param>
|
||||
/// <param name="connectionId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <param name="forceDetachFromFiles"></param>
|
||||
/// <returns></returns>
|
||||
Task DetachTags(
|
||||
Guid id,
|
||||
string tags,
|
||||
string connectionId = null,
|
||||
XUserClaimsInfoDto userInfo = null,
|
||||
bool forceDetachFromFiles = true
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve Specified Webinar's Tags ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XTagDto>> GetTags(
|
||||
Guid id,
|
||||
XUserClaimsInfoDto userInfo = null
|
||||
);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,6 @@ using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarGroupStore : IXBaseRepository<XWebinarGroupEntity, Guid>
|
||||
{
|
||||
|
||||
}
|
||||
public interface IXWebinarSeeder : IXBaseDbSeeder<XWebinar, Guid>
|
||||
{ }
|
||||
}
|
||||
@@ -1,266 +0,0 @@
|
||||
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;
|
||||
using xTagService.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>
|
||||
/// Retrieve Specified Webinar's Files ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult<IEnumerable<XFileDto>>> GetFiles(
|
||||
[FromRoute] Guid id
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Stream Specified File of Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="fileId"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult> StreamFile(
|
||||
[FromRoute] Guid id,
|
||||
[FromRoute] Guid fileId
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Download Specified File of Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="fileId"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult> DownloadFile(
|
||||
[FromRoute] Guid id,
|
||||
[FromRoute] Guid fileId
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Attach Provided Files to Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("{id}/Files/AttachMany")]
|
||||
Task<ActionResult> AttachFiles(
|
||||
[FromRoute] Guid id,
|
||||
[FromQuery] string ids
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Detach Provided Files to Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="ids">if null, detach all files ...</param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{id}/Files/DetachMany")]
|
||||
Task<ActionResult> DetachFiles(
|
||||
[FromRoute] Guid id,
|
||||
[FromQuery] string ids = null
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Tags Actions ...
|
||||
/// <summary>
|
||||
/// Attach Specified Tags To Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="tags"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult> AttachTags(
|
||||
[FromRoute] Guid id,
|
||||
[FromQuery] string tags
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Detach Specified Tags From Specified Webinar ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="tags">if null, remove all attached tags ...</param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult> DetachTags(
|
||||
[FromRoute] Guid id,
|
||||
[FromQuery] string tags
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve Specified Webinars Tags ...
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult<IEnumerable<XTagDto>>> GetTags(
|
||||
[FromRoute] Guid id
|
||||
);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using xDataService.Interfaces;
|
||||
using xWebinarService.Models.Entities;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarSubscriberSeeder : IXBaseDbSeeder<XWebinarSubscriber, int>
|
||||
{ }
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
using System;
|
||||
using xTagService.Interfaces;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarTagProvider : IXBaseTagProvider<Guid>
|
||||
{ }
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
using xStringService.Interfaces;
|
||||
|
||||
namespace xWebinarService.Interfaces
|
||||
{
|
||||
public interface IXWebinarTitleResourceProvider : IXBaseStringResourceProvider
|
||||
{ }
|
||||
}
|
||||
Reference in New Issue
Block a user