This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -50,7 +50,7 @@
|
||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||
"AYANOVA_METRICS_USE_INFLUXDB": "false",
|
||||
"AYANOVA_SERVER_TEST_MODE":"true",
|
||||
"AYANOVA_SERVER_TEST_MODE":"false",
|
||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL":"small",
|
||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET":"-7"
|
||||
|
||||
|
||||
@@ -39,6 +39,10 @@ namespace AyaNova.Biz
|
||||
TABLE = "aformcustom";
|
||||
COLUMN = "formkey";
|
||||
break;
|
||||
case AyaType.WorkOrder:
|
||||
cmd.CommandText = $"SELECT m.serial FROM aworkorder AS m WHERE m.id = {id} LIMIT 1";
|
||||
using (var dr = cmd.ExecuteReader())
|
||||
return dr.Read() ? dr.GetInt64(0).ToString() : "-";
|
||||
default:
|
||||
TABLE = "a" + aytype.ToString().ToLowerInvariant();
|
||||
break;
|
||||
|
||||
@@ -47,8 +47,23 @@ namespace AyaNova.Biz
|
||||
|
||||
internal async Task<WorkOrder> GetAsync(long fetchId, bool logTheGetEvent = true)
|
||||
{
|
||||
/*
|
||||
https://docs.microsoft.com/en-us/ef/core/querying/related-data
|
||||
using (var context = new BloggingContext())
|
||||
{
|
||||
var blogs = context.Blogs
|
||||
.Include(blog => blog.Posts)
|
||||
.ThenInclude(post => post.Author)
|
||||
.ThenInclude(author => author.Photo)
|
||||
.ToList();
|
||||
}
|
||||
WARNING: Since version 3.0.0, each Include will cause an additional JOIN to be added to SQL queries produced by relational providers, whereas previous versions generated additional SQL queries. This can significantly change the performance of your queries, for better or worse. In particular, LINQ queries with an exceedingly high number of Include operators may need to be broken down into multiple separate LINQ queries in order to avoid the cartesian explosion problem.
|
||||
*/
|
||||
//This is simple so nothing more here, but often will be copying to a different output object or some other ops
|
||||
var ret = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == fetchId);
|
||||
//var ret = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == fetchId);
|
||||
|
||||
var ret = await ct.WorkOrder.Include(w=>w.WorkorderItems).SingleOrDefaultAsync(m => m.Id == fetchId);
|
||||
|
||||
if (logTheGetEvent && ret != null)
|
||||
{
|
||||
//Log
|
||||
@@ -208,21 +223,20 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<bool> DeleteAsync(WorkOrder dbObj)
|
||||
{
|
||||
throw new System.NotImplementedException("STUB: WORKORDER DELETE");
|
||||
//Determine if the object can be deleted, do the deletion tentatively
|
||||
//Probably also in here deal with tags and associated search text etc
|
||||
|
||||
//NOT REQUIRED NOW BUT IF IN FUTURE ValidateCanDelete(dbObj);
|
||||
// if (HasErrors)
|
||||
// return false;
|
||||
// ct.WorkOrder.Remove(dbObj);
|
||||
// await ct.SaveChangesAsync();
|
||||
|
||||
// //Log event
|
||||
// await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, dbObj.Id, dbObj.Serial.ToString(), ct);
|
||||
// await Search.ProcessDeletedObjectKeywordsAsync(dbObj.Id, BizType);
|
||||
// await TagUtil.ProcessDeleteTagsInRepositoryAsync(ct, dbObj.Tags);
|
||||
// return true;
|
||||
// NOT REQUIRED NOW BUT IF IN FUTURE ValidateCanDelete(dbObj);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
|
||||
ct.WorkOrder.Remove(dbObj);
|
||||
await ct.SaveChangesAsync();
|
||||
|
||||
//Log event
|
||||
await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, dbObj.Id, dbObj.Serial.ToString(), ct);
|
||||
await Search.ProcessDeletedObjectKeywordsAsync(dbObj.Id, BizType);
|
||||
await TagUtil.ProcessDeleteTagsInRepositoryAsync(ct, dbObj.Tags);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -22,11 +22,12 @@ namespace AyaNova.Models
|
||||
public List<string> Tags { get; set; }
|
||||
|
||||
//Principle
|
||||
[Required]//this required annotation should cause a cascade delete to happen automatically when wo is deleted, need to test that
|
||||
public long WorkorderId { get; set; }//fk
|
||||
[Required]
|
||||
public long WorkorderId { get; set; }//fk
|
||||
|
||||
[JsonIgnore]//Avoid circular reference when serializing
|
||||
public WorkOrder WorkOrder { get; set; }
|
||||
|
||||
//Dependents
|
||||
|
||||
public WorkOrderItem()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user