divan/RMuseum/Services/IAudioNarrationService.cs

63 lines
2.2 KiB
C#

using Microsoft.AspNetCore.Http;
using RMuseum.Models.GanjoorAudio;
using RMuseum.Models.GanjoorAudio.ViewModels;
using RMuseum.Models.UploadSession;
using RSecurityBackend.Models.Generic;
using System;
using System.Threading.Tasks;
namespace RMuseum.Services
{
/// <summary>
/// Audio Narration Service
/// </summary>
public interface IAudioNarrationService
{
/// <summary>
/// returns list of narrations
/// </summary>
/// <param name="paging"></param>
/// <param name="filteredUserId">send Guid.Empty if you want all narrations</param>
/// <param name="status"></param>
/// <returns></returns>
public Task<RServiceResult<(PaginationMetadata PagingMeta, PoemNarrationViewModel[] Items)>> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status);
/// <summary>
/// imports data from ganjoor MySql database
/// </summary>
/// <param name="OwnrRAppUserId">User Id which becomes owner of imported data</param>
/// <returns></returns>
Task<RServiceResult<bool>> OneTimeImport(Guid OwnrRAppUserId);
/// <summary>
/// Initiate New Upload Session for audio
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<RServiceResult<UploadSession>> InitiateNewUploadSession(Guid userId);
/// <summary>
/// Save uploaded file
/// </summary>
/// <param name="uploadedFile"></param>
/// <returns></returns>
Task<RServiceResult<UploadSessionFile>> SaveUploadedFile(IFormFile uploadedFile);
/// <summary>
/// finalize upload session (add files)
/// </summary>
/// <param name="session"></param>
/// <param name="files"></param>
/// <returns></returns>
Task<RServiceResult<UploadSession>> FinalizeNewUploadSession(UploadSession session, UploadSessionFile[] files);
/// <summary>
/// Get Upload Session (including files)
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<RServiceResult<UploadSession>> GetUploadSession(Guid id);
}
}