#11 changing uploads api
This commit is contained in:
parent
bcd2db2e2f
commit
a1864b9084
@ -77,7 +77,7 @@ namespace RMuseum.Controllers
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("uploads")]
|
[HttpGet("uploads")]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<UploadSessionViewModel>))]
|
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<dynamic>))]
|
||||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||||
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
||||||
|
|
||||||
|
|||||||
@ -139,6 +139,11 @@ namespace RMuseum.DbContext
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DbSet<UploadSession> UploadSessions { get; set; }
|
public DbSet<UploadSession> UploadSessions { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Uploaded files
|
||||||
|
/// </summary>
|
||||||
|
public DbSet<UploadSessionFile> UploadedFiles { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// User Narration Profiles
|
/// User Narration Profiles
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
1406
RMuseum/Migrations/20201004155741_UploadedFiles.Designer.cs
generated
Normal file
1406
RMuseum/Migrations/20201004155741_UploadedFiles.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
89
RMuseum/Migrations/20201004155741_UploadedFiles.cs
Normal file
89
RMuseum/Migrations/20201004155741_UploadedFiles.cs
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace RMuseum.Migrations
|
||||||
|
{
|
||||||
|
public partial class UploadedFiles : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_UploadSessionFile_UploadSessions_UploadSessionId",
|
||||||
|
table: "UploadSessionFile");
|
||||||
|
|
||||||
|
migrationBuilder.DropPrimaryKey(
|
||||||
|
name: "PK_UploadSessionFile",
|
||||||
|
table: "UploadSessionFile");
|
||||||
|
|
||||||
|
migrationBuilder.RenameTable(
|
||||||
|
name: "UploadSessionFile",
|
||||||
|
newName: "UploadedFiles");
|
||||||
|
|
||||||
|
migrationBuilder.RenameIndex(
|
||||||
|
name: "IX_UploadSessionFile_UploadSessionId",
|
||||||
|
table: "UploadedFiles",
|
||||||
|
newName: "IX_UploadedFiles_UploadSessionId");
|
||||||
|
|
||||||
|
migrationBuilder.AlterColumn<Guid>(
|
||||||
|
name: "UploadSessionId",
|
||||||
|
table: "UploadedFiles",
|
||||||
|
nullable: false,
|
||||||
|
oldClrType: typeof(Guid),
|
||||||
|
oldType: "uniqueidentifier",
|
||||||
|
oldNullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddPrimaryKey(
|
||||||
|
name: "PK_UploadedFiles",
|
||||||
|
table: "UploadedFiles",
|
||||||
|
column: "Id");
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_UploadedFiles_UploadSessions_UploadSessionId",
|
||||||
|
table: "UploadedFiles",
|
||||||
|
column: "UploadSessionId",
|
||||||
|
principalTable: "UploadSessions",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_UploadedFiles_UploadSessions_UploadSessionId",
|
||||||
|
table: "UploadedFiles");
|
||||||
|
|
||||||
|
migrationBuilder.DropPrimaryKey(
|
||||||
|
name: "PK_UploadedFiles",
|
||||||
|
table: "UploadedFiles");
|
||||||
|
|
||||||
|
migrationBuilder.RenameTable(
|
||||||
|
name: "UploadedFiles",
|
||||||
|
newName: "UploadSessionFile");
|
||||||
|
|
||||||
|
migrationBuilder.RenameIndex(
|
||||||
|
name: "IX_UploadedFiles_UploadSessionId",
|
||||||
|
table: "UploadSessionFile",
|
||||||
|
newName: "IX_UploadSessionFile_UploadSessionId");
|
||||||
|
|
||||||
|
migrationBuilder.AlterColumn<Guid>(
|
||||||
|
name: "UploadSessionId",
|
||||||
|
table: "UploadSessionFile",
|
||||||
|
type: "uniqueidentifier",
|
||||||
|
nullable: true,
|
||||||
|
oldClrType: typeof(Guid));
|
||||||
|
|
||||||
|
migrationBuilder.AddPrimaryKey(
|
||||||
|
name: "PK_UploadSessionFile",
|
||||||
|
table: "UploadSessionFile",
|
||||||
|
column: "Id");
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_UploadSessionFile_UploadSessions_UploadSessionId",
|
||||||
|
table: "UploadSessionFile",
|
||||||
|
column: "UploadSessionId",
|
||||||
|
principalTable: "UploadSessions",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -764,14 +764,14 @@ namespace RMuseum.Migrations
|
|||||||
b.Property<string>("ProcessResultMsg")
|
b.Property<string>("ProcessResultMsg")
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
b.Property<Guid?>("UploadSessionId")
|
b.Property<Guid>("UploadSessionId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.HasIndex("UploadSessionId");
|
b.HasIndex("UploadSessionId");
|
||||||
|
|
||||||
b.ToTable("UploadSessionFile");
|
b.ToTable("UploadedFiles");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("RSecurityBackend.Models.Audit.Db.REvent", b =>
|
modelBuilder.Entity("RSecurityBackend.Models.Audit.Db.REvent", b =>
|
||||||
@ -1355,7 +1355,9 @@ namespace RMuseum.Migrations
|
|||||||
{
|
{
|
||||||
b.HasOne("RMuseum.Models.UploadSession.UploadSession", null)
|
b.HasOne("RMuseum.Models.UploadSession.UploadSession", null)
|
||||||
.WithMany("UploadedFiles")
|
.WithMany("UploadedFiles")
|
||||||
.HasForeignKey("UploadSessionId");
|
.HasForeignKey("UploadSessionId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b =>
|
modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b =>
|
||||||
|
|||||||
@ -13,6 +13,11 @@ namespace RMuseum.Models.UploadSession
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Upload Session Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid UploadSessionId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ContentDisposition
|
/// ContentDisposition
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,81 +0,0 @@
|
|||||||
using Org.BouncyCastle.Crypto.Tls;
|
|
||||||
using RSecurityBackend.Models.Auth.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace RMuseum.Models.UploadSession.ViewModels
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Upload session view model
|
|
||||||
/// </summary>
|
|
||||||
public class UploadSessionViewModel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Constructor
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="src"></param>
|
|
||||||
public UploadSessionViewModel(UploadSession src)
|
|
||||||
{
|
|
||||||
Id = src.Id;
|
|
||||||
SessionType = src.SessionType;
|
|
||||||
User = new PublicRAppUser(src.User);
|
|
||||||
UploadStartTime = src.UploadStartTime;
|
|
||||||
UploadEndTime = src.UploadEndTime;
|
|
||||||
ProcessStartTime = src.ProcessStartTime;
|
|
||||||
ProcessEndTime = src.ProcessEndTime;
|
|
||||||
ProcessProgress = src.ProcessProgress;
|
|
||||||
Status = src.Status;
|
|
||||||
UploadedFiles = src.UploadedFiles;
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Id
|
|
||||||
/// </summary>
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Session Type
|
|
||||||
/// </summary>
|
|
||||||
public UploadSessionType SessionType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// User
|
|
||||||
/// </summary>
|
|
||||||
public PublicRAppUser User { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Upload Start Time
|
|
||||||
/// </summary>
|
|
||||||
public DateTime UploadStartTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Upload End Time
|
|
||||||
/// </summary>
|
|
||||||
public DateTime UploadEndTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Process Start Time
|
|
||||||
/// </summary>
|
|
||||||
public DateTime ProcessStartTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Process End Time
|
|
||||||
/// </summary>
|
|
||||||
public DateTime ProcessEndTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Process Progress
|
|
||||||
/// </summary>
|
|
||||||
public int ProcessProgress { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Status
|
|
||||||
/// </summary>
|
|
||||||
public UploadSessionProcessStatus Status { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Uploaded Files
|
|
||||||
/// </summary>
|
|
||||||
public ICollection<UploadSessionFile> UploadedFiles { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -860,6 +860,11 @@
|
|||||||
Upload Sessions
|
Upload Sessions
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:RMuseum.DbContext.RMuseumDbContext.UploadedFiles">
|
||||||
|
<summary>
|
||||||
|
Uploaded files
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:RMuseum.DbContext.RMuseumDbContext.UserNarrationProfiles">
|
<member name="P:RMuseum.DbContext.RMuseumDbContext.UserNarrationProfiles">
|
||||||
<summary>
|
<summary>
|
||||||
User Narration Profiles
|
User Narration Profiles
|
||||||
@ -2929,6 +2934,11 @@
|
|||||||
Id
|
Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:RMuseum.Models.UploadSession.UploadSessionFile.UploadSessionId">
|
||||||
|
<summary>
|
||||||
|
Upload Session Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:RMuseum.Models.UploadSession.UploadSessionFile.ContentDisposition">
|
<member name="P:RMuseum.Models.UploadSession.UploadSessionFile.ContentDisposition">
|
||||||
<summary>
|
<summary>
|
||||||
ContentDisposition
|
ContentDisposition
|
||||||
|
|||||||
@ -94,7 +94,7 @@ namespace RMuseum.Services
|
|||||||
/// <param name="paging"></param>
|
/// <param name="paging"></param>
|
||||||
/// <param name="userId">if userId is empty all user uploads would be returned</param>
|
/// <param name="userId">if userId is empty all user uploads would be returned</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<RServiceResult<(PaginationMetadata PagingMeta, UploadSessionViewModel[] Items)>> GetUploads(PagingParameterModel paging, Guid userId);
|
Task<RServiceResult<(PaginationMetadata PagingMeta, dynamic[] Items)>> GetUploads(PagingParameterModel paging, Guid userId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -605,33 +605,39 @@ namespace RMuseum.Services.Implementation
|
|||||||
/// <param name="paging"></param>
|
/// <param name="paging"></param>
|
||||||
/// <param name="userId">if userId is empty all user uploads would be returned</param>
|
/// <param name="userId">if userId is empty all user uploads would be returned</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<RServiceResult<(PaginationMetadata PagingMeta, UploadSessionViewModel[] Items)>> GetUploads(PagingParameterModel paging, Guid userId)
|
public async Task<RServiceResult<(PaginationMetadata PagingMeta, dynamic[] Items)>> GetUploads(PagingParameterModel paging, Guid userId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var source =
|
var source =
|
||||||
|
(
|
||||||
|
from file in _context.UploadedFiles
|
||||||
|
join session in _context.UploadSessions.Include(s => s.User)
|
||||||
|
on file.UploadSessionId equals session.Id
|
||||||
|
where userId == Guid.Empty || session.UseId == userId
|
||||||
|
orderby session.UploadEndTime descending
|
||||||
|
select new
|
||||||
|
{ file.FileName, file.ProcessResult, file.ProcessResultMsg, session.UploadEndTime, session.User.UserName, session.ProcessStartTime, session.ProcessProgress, session.ProcessEndTime }
|
||||||
|
).AsQueryable();
|
||||||
|
|
||||||
|
/*
|
||||||
_context.UploadSessions
|
_context.UploadSessions
|
||||||
.Include(u => u.User)
|
.Include(u => u.User)
|
||||||
.Include(u => u.UploadedFiles)
|
.Include(u => u.UploadedFiles)
|
||||||
.Where(u => userId == Guid.Empty || u.UseId == userId )
|
.Where(u => userId == Guid.Empty || u.UseId == userId )
|
||||||
.OrderByDescending(u => u.UploadEndTime)
|
.OrderByDescending(u => u.UploadEndTime)
|
||||||
.AsQueryable();
|
.AsQueryable();*/
|
||||||
|
|
||||||
(PaginationMetadata PagingMeta, UploadSession[] Items) paginatedResult =
|
(PaginationMetadata PagingMeta, dynamic[] Items) paginatedResult =
|
||||||
await QueryablePaginator<UploadSession>.Paginate(source, paging);
|
await QueryablePaginator<dynamic>.Paginate(source, paging);
|
||||||
|
|
||||||
List<UploadSessionViewModel> res = new List<UploadSessionViewModel>();
|
|
||||||
foreach (UploadSession upload in paginatedResult.Items)
|
|
||||||
{
|
|
||||||
res.Add(new UploadSessionViewModel(upload));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new RServiceResult<(PaginationMetadata PagingMeta, UploadSessionViewModel[] Items)>((paginatedResult.PagingMeta, res.ToArray()));
|
|
||||||
|
return new RServiceResult<(PaginationMetadata PagingMeta, dynamic[] Items)>((paginatedResult.PagingMeta, paginatedResult.Items));
|
||||||
}
|
}
|
||||||
catch (Exception exp)
|
catch (Exception exp)
|
||||||
{
|
{
|
||||||
return new RServiceResult<(PaginationMetadata PagingMeta, UploadSessionViewModel[] Items)>((PagingMeta: null, Items: null), exp.ToString());
|
return new RServiceResult<(PaginationMetadata PagingMeta, dynamic[] Items)>((PagingMeta: null, Items: null), exp.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user