This commit is contained in:
@@ -221,7 +221,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
{
|
{
|
||||||
foreach (UploadedFileInfo a in uploadFormData.UploadedFiles)
|
foreach (UploadedFileInfo a in uploadFormData.UploadedFiles)
|
||||||
{
|
{
|
||||||
var v = await FileUtil.StoreFileAttachmentAsync(a.InitialUploadedPathName, a.MimeType, a.OriginalFileName, attachToObject, ct);
|
var v = await FileUtil.StoreFileAttachmentAsync(a.InitialUploadedPathName, a.MimeType, a.OriginalFileName, a.LastModified, attachToObject, ct);
|
||||||
returnList.Add(new NameIdItem()
|
returnList.Add(new NameIdItem()
|
||||||
{
|
{
|
||||||
Name = v.DisplayFileName,
|
Name = v.DisplayFileName,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using AyaNova.Biz;
|
using AyaNova.Biz;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
@@ -8,8 +9,8 @@ namespace AyaNova.Models
|
|||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public uint ConcurrencyToken { get; set; }
|
public uint ConcurrencyToken { get; set; }
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------
|
//-----------------------------------------
|
||||||
[Required]
|
[Required]
|
||||||
public long AttachToObjectId { get; set; }
|
public long AttachToObjectId { get; set; }
|
||||||
@@ -21,7 +22,8 @@ namespace AyaNova.Models
|
|||||||
public string DisplayFileName { get; set; }
|
public string DisplayFileName { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public string ContentType { get; set; }//mime type
|
public string ContentType { get; set; }//mime type
|
||||||
|
[Required]
|
||||||
|
public DateTime LastModified { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
namespace AyaNova.Models
|
namespace AyaNova.Models
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -9,6 +10,7 @@ namespace AyaNova.Models
|
|||||||
public string InitialUploadedPathName { get; set; }
|
public string InitialUploadedPathName { get; set; }
|
||||||
public string OriginalFileName { get; set; }
|
public string OriginalFileName { get; set; }
|
||||||
public string MimeType { get; set; }
|
public string MimeType { get; set; }
|
||||||
|
public DateTime LastModified {get;set;}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace AyaNova.Util
|
|||||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||||
private const int DESIRED_SCHEMA_LEVEL = 10;
|
private const int DESIRED_SCHEMA_LEVEL = 10;
|
||||||
|
|
||||||
internal const long EXPECTED_COLUMN_COUNT = 103;
|
internal const long EXPECTED_COLUMN_COUNT = 104;
|
||||||
internal const long EXPECTED_INDEX_COUNT = 31;
|
internal const long EXPECTED_INDEX_COUNT = 31;
|
||||||
|
|
||||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||||
@@ -236,7 +236,7 @@ namespace AyaNova.Util
|
|||||||
|
|
||||||
await ExecQueryAsync("CREATE TABLE afileattachment (id BIGSERIAL PRIMARY KEY, " +
|
await ExecQueryAsync("CREATE TABLE afileattachment (id BIGSERIAL PRIMARY KEY, " +
|
||||||
"attachtoobjectid bigint not null, attachtoobjecttype integer not null, " +
|
"attachtoobjectid bigint not null, attachtoobjecttype integer not null, " +
|
||||||
"storedfilename text not null, displayfilename text not null, contenttype text, notes text)");
|
"storedfilename text not null, displayfilename text not null, contenttype text, lastmodified timestamp not null, notes text)");
|
||||||
|
|
||||||
//index required for ops that need to check if file already in db (delete, count refs etc)
|
//index required for ops that need to check if file already in db (delete, count refs etc)
|
||||||
//LOOKAT: isn't this useless without the ID as well or is that not fetched?
|
//LOOKAT: isn't this useless without the ID as well or is that not fetched?
|
||||||
|
|||||||
@@ -253,14 +253,10 @@ namespace AyaNova.Util
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Store a file attachment
|
/// Store a file attachment
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tempFilePath"></param>
|
|
||||||
/// <param name="contentType"></param>
|
|
||||||
/// <param name="fileName"></param>
|
|
||||||
/// <param name="attachToObject"></param>
|
|
||||||
/// <param name="ct"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
internal static async Task<FileAttachment> StoreFileAttachmentAsync(string tempFilePath, string contentType, string fileName, AyaTypeId attachToObject, AyContext ct)
|
internal static async Task<FileAttachment> StoreFileAttachmentAsync(string tempFilePath, string contentType, string fileName, DateTime lastModified,
|
||||||
|
AyaTypeId attachToObject, AyContext ct)
|
||||||
{
|
{
|
||||||
//calculate hash
|
//calculate hash
|
||||||
var hash = FileHash.GetChecksum(tempFilePath);
|
var hash = FileHash.GetChecksum(tempFilePath);
|
||||||
@@ -291,7 +287,8 @@ namespace AyaNova.Util
|
|||||||
Notes = string.Empty,
|
Notes = string.Empty,
|
||||||
ContentType = contentType,
|
ContentType = contentType,
|
||||||
AttachToObjectId = attachToObject.ObjectId,
|
AttachToObjectId = attachToObject.ObjectId,
|
||||||
AttachToObjectType = attachToObject.ObjectType
|
AttachToObjectType = attachToObject.ObjectType,
|
||||||
|
LastModified=lastModified
|
||||||
};
|
};
|
||||||
|
|
||||||
//Store in DB
|
//Store in DB
|
||||||
|
|||||||
Reference in New Issue
Block a user