diff --git a/server/AyaNova/Controllers/ImportController.cs b/server/AyaNova/Controllers/ImportController.cs
index a6671db2..9ed0084a 100644
--- a/server/AyaNova/Controllers/ImportController.cs
+++ b/server/AyaNova/Controllers/ImportController.cs
@@ -45,7 +45,7 @@ namespace AyaNova.Api.Controllers
/// From route path
///
[HttpPost]
- public async Task PostImportData([FromBody] AyImportObject importData, ApiVersion apiVersion)
+ public async Task PostImportData([FromBody] AyImportData importData, ApiVersion apiVersion)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
@@ -54,135 +54,133 @@ namespace AyaNova.Api.Controllers
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
- await Task.CompletedTask;
- return Ok();
- // if (o == null)
- // return BadRequest(new ApiErrorResponse(biz.Errors));
- // else
- // return CreatedAtAction(nameof(CustomerController.GetCustomer), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
- }
-
- public class AyImportObject
- {
- public AyaType AType { get; set; }
- public JArray Data { get; set; }
- public bool DoImport {get;set;}
- public bool DoUpdate {get;set;}
- }
-
-
- ///
- /// Upload and import file
- /// Max 100MiB total
- ///
- /// Results
- [Authorize]
- [HttpPost("upload")]
- [DisableFormValueModelBinding]
- [RequestSizeLimit(AyaNova.Util.ServerBootConfig.MAX_IMPORT_FILE_UPLOAD_BYTES)]
- public async Task UploadAsync()
- {
- //Adapted from the example found here: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads#uploading-large-files-with-streaming
-
- if (!serverState.IsOpen)
- return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
-
- //This route is ONLY available to users with full rights to Global object
- if (!Authorized.HasModifyRole(HttpContext.Items, AyaType.Global))
- {
- return StatusCode(403, new ApiNotAuthorizedResponse());
- }
-
- // AyaTypeId attachToObject = null;
- ApiUploadProcessor.ApiUploadedFilesResult uploadFormData = null;
List ImportResult = new List();
ImportResult.Add("Import results\n");
- try
- {
- if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
- return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, $"Expected a multipart request, but got {Request.ContentType}"));
+ log.LogDebug($"Instantiating biz object handler for {importData.AType}");
+ var biz = BizObjectFactory.GetBizObject(importData.AType, ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
- //Save uploads to disk under temporary file names until we decide how to handle them
- // uploadFormData = await ApiUploadProcessor.ProcessUploadAsync(HttpContext);xx
-
-
- string UploadAType = string.Empty;
-
- string errorMessage = string.Empty;
- string Notes = string.Empty;
- List FileData = new List();
-
- //Save uploads to disk under temporary file names until we decide how to handle them
- uploadFormData = await ApiUploadProcessor.ProcessUploadAsync(HttpContext);
- if (!string.IsNullOrWhiteSpace(uploadFormData.Error))
- {
- errorMessage = uploadFormData.Error;
- //delete temp files
- ApiUploadProcessor.DeleteTempUploadFile(uploadFormData);
- //file too large is most likely issue so in that case return this localized properly
- if (errorMessage.Contains("413"))
- {
- var TransId = UserTranslationIdFromContext.Id(HttpContext.Items);
- return BadRequest(new ApiErrorResponse(
- ApiErrorCode.VALIDATION_LENGTH_EXCEEDED,
- null,
- String.Format(await TranslationBiz.GetTranslationStaticAsync("AyaFileFileTooLarge", TransId, ct), AyaNova.Util.FileUtil.GetBytesReadable(AyaNova.Util.ServerBootConfig.MAX_IMPORT_FILE_UPLOAD_BYTES))));
- }
- else//not too big, something else
- return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, errorMessage));
- }
-
- if (!uploadFormData.FormFieldData.ContainsKey("FileData"))//only filedata is required
- return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, "Missing required FormFieldData value: FileData"));
-
-
- if (uploadFormData.FormFieldData.ContainsKey("AType"))
- UploadAType = uploadFormData.FormFieldData["AType"].ToString();
- else
- return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, "Missing required FormFieldData value: AType"));
-
- //fileData in JSON stringify format which contains the actual last modified dates etc
- //"[{\"name\":\"Client.csv\",\"lastModified\":1582822079618},{\"name\":\"wmi4fu06nrs41.jpg\",\"lastModified\":1586900220990}]"
- FileData = Newtonsoft.Json.JsonConvert.DeserializeObject>(uploadFormData.FormFieldData["FileData"].ToString());
-
-
-
- //Instantiate the business object handler
- AyaType TheType = System.Enum.Parse(UploadAType, true);
- log.LogDebug($"Instantiating biz object handler for {TheType}");
- var biz = BizObjectFactory.GetBizObject(TheType, ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
-
- if (!(biz is IImportAbleObject))
- return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, $"Import not supported for {TheType} objects"));
-
- //We have our files now can parse and insert into db
- if (uploadFormData.UploadedFiles.Count > 0)
- {
- //deserialize each file and import
- foreach (UploadedFileInfo a in uploadFormData.UploadedFiles)
- {
- JArray ja = JArray.Parse(System.IO.File.ReadAllText(a.InitialUploadedPathName));
- ImportResult.AddRange(await ((IImportAbleObject)biz).ImportData(ja));
- }
- }
- }
- catch (System.IO.InvalidDataException ex)
- {
- return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, ex.Message));
- }
- finally
- {
- //delete all the files temporarily uploaded and return bad request
-
- ApiUploadProcessor.DeleteTempUploadFile(uploadFormData);
- }
+ if (!(biz is IImportAbleObject))
+ return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, $"Import not supported for {importData.AType} objects"));
+ ImportResult.AddRange(await ((IImportAbleObject)biz).ImportData(importData));
return Ok(ApiOkResponse.Response(ImportResult));
+
}
+ // ///
+ // /// Upload and import file
+ // /// Max 100MiB total
+ // ///
+ // /// Results
+ // [Authorize]
+ // [HttpPost("upload")]
+ // [DisableFormValueModelBinding]
+ // [RequestSizeLimit(AyaNova.Util.ServerBootConfig.MAX_IMPORT_FILE_UPLOAD_BYTES)]
+ // public async Task UploadAsync()
+ // {
+ // //Adapted from the example found here: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads#uploading-large-files-with-streaming
+
+ // if (!serverState.IsOpen)
+ // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
+
+ // //This route is ONLY available to users with full rights to Global object
+ // if (!Authorized.HasModifyRole(HttpContext.Items, AyaType.Global))
+ // {
+ // return StatusCode(403, new ApiNotAuthorizedResponse());
+ // }
+
+ // // AyaTypeId attachToObject = null;
+ // ApiUploadProcessor.ApiUploadedFilesResult uploadFormData = null;
+ // List ImportResult = new List();
+ // ImportResult.Add("Import results\n");
+ // try
+ // {
+ // if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, $"Expected a multipart request, but got {Request.ContentType}"));
+
+ // //Save uploads to disk under temporary file names until we decide how to handle them
+ // // uploadFormData = await ApiUploadProcessor.ProcessUploadAsync(HttpContext);xx
+
+
+ // string UploadAType = string.Empty;
+
+ // string errorMessage = string.Empty;
+ // string Notes = string.Empty;
+ // List FileData = new List();
+
+ // //Save uploads to disk under temporary file names until we decide how to handle them
+ // uploadFormData = await ApiUploadProcessor.ProcessUploadAsync(HttpContext);
+ // if (!string.IsNullOrWhiteSpace(uploadFormData.Error))
+ // {
+ // errorMessage = uploadFormData.Error;
+ // //delete temp files
+ // ApiUploadProcessor.DeleteTempUploadFile(uploadFormData);
+ // //file too large is most likely issue so in that case return this localized properly
+ // if (errorMessage.Contains("413"))
+ // {
+ // var TransId = UserTranslationIdFromContext.Id(HttpContext.Items);
+ // return BadRequest(new ApiErrorResponse(
+ // ApiErrorCode.VALIDATION_LENGTH_EXCEEDED,
+ // null,
+ // String.Format(await TranslationBiz.GetTranslationStaticAsync("AyaFileFileTooLarge", TransId, ct), AyaNova.Util.FileUtil.GetBytesReadable(AyaNova.Util.ServerBootConfig.MAX_IMPORT_FILE_UPLOAD_BYTES))));
+ // }
+ // else//not too big, something else
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, errorMessage));
+ // }
+
+ // if (!uploadFormData.FormFieldData.ContainsKey("FileData"))//only filedata is required
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, "Missing required FormFieldData value: FileData"));
+
+
+ // if (uploadFormData.FormFieldData.ContainsKey("AType"))
+ // UploadAType = uploadFormData.FormFieldData["AType"].ToString();
+ // else
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, "Missing required FormFieldData value: AType"));
+
+ // //fileData in JSON stringify format which contains the actual last modified dates etc
+ // //"[{\"name\":\"Client.csv\",\"lastModified\":1582822079618},{\"name\":\"wmi4fu06nrs41.jpg\",\"lastModified\":1586900220990}]"
+ // FileData = Newtonsoft.Json.JsonConvert.DeserializeObject>(uploadFormData.FormFieldData["FileData"].ToString());
+
+
+
+ // //Instantiate the business object handler
+ // AyaType TheType = System.Enum.Parse(UploadAType, true);
+ // log.LogDebug($"Instantiating biz object handler for {TheType}");
+ // var biz = BizObjectFactory.GetBizObject(TheType, ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
+
+ // if (!(biz is IImportAbleObject))
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, $"Import not supported for {TheType} objects"));
+
+ // //We have our files now can parse and insert into db
+ // if (uploadFormData.UploadedFiles.Count > 0)
+ // {
+ // //deserialize each file and import
+ // foreach (UploadedFileInfo a in uploadFormData.UploadedFiles)
+ // {
+ // JArray ja = JArray.Parse(System.IO.File.ReadAllText(a.InitialUploadedPathName));
+ // ImportResult.AddRange(await ((IImportAbleObject)biz).ImportData(ja));
+ // }
+ // }
+ // }
+ // catch (System.IO.InvalidDataException ex)
+ // {
+ // return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, null, ex.Message));
+ // }
+ // finally
+ // {
+ // //delete all the files temporarily uploaded and return bad request
+
+ // ApiUploadProcessor.DeleteTempUploadFile(uploadFormData);
+ // }
+
+ // return Ok(ApiOkResponse.Response(ImportResult));
+ // }
+
+
+
//-----------------------------------------
diff --git a/server/AyaNova/biz/CustomerBiz.cs b/server/AyaNova/biz/CustomerBiz.cs
index 47cf7d57..247a1f34 100644
--- a/server/AyaNova/biz/CustomerBiz.cs
+++ b/server/AyaNova/biz/CustomerBiz.cs
@@ -427,13 +427,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/CustomerServiceRequestBiz.cs b/server/AyaNova/biz/CustomerServiceRequestBiz.cs
index 2282b5ec..c290186e 100644
--- a/server/AyaNova/biz/CustomerServiceRequestBiz.cs
+++ b/server/AyaNova/biz/CustomerServiceRequestBiz.cs
@@ -334,13 +334,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/HeadOfficeBiz.cs b/server/AyaNova/biz/HeadOfficeBiz.cs
index 0ba0d750..2ac974eb 100644
--- a/server/AyaNova/biz/HeadOfficeBiz.cs
+++ b/server/AyaNova/biz/HeadOfficeBiz.cs
@@ -343,13 +343,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/IImportAbleObject.cs b/server/AyaNova/biz/IImportAbleObject.cs
index aa855d25..d54dcf65 100644
--- a/server/AyaNova/biz/IImportAbleObject.cs
+++ b/server/AyaNova/biz/IImportAbleObject.cs
@@ -1,6 +1,6 @@
using System.Threading.Tasks;
-using Newtonsoft.Json.Linq;
using System.Collections.Generic;
+using AyaNova.Models;
namespace AyaNova.Biz
{
@@ -9,7 +9,7 @@ namespace AyaNova.Biz
///
internal interface IImportAbleObject
{
- Task> ImportData(JArray ja);
+ Task> ImportData(AyImportData importData);
}
}
\ No newline at end of file
diff --git a/server/AyaNova/biz/LoanUnitBiz.cs b/server/AyaNova/biz/LoanUnitBiz.cs
index cffc1e17..fadd1caf 100644
--- a/server/AyaNova/biz/LoanUnitBiz.cs
+++ b/server/AyaNova/biz/LoanUnitBiz.cs
@@ -351,13 +351,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/MemoBiz.cs b/server/AyaNova/biz/MemoBiz.cs
index 4e40ad40..1e1e23a6 100644
--- a/server/AyaNova/biz/MemoBiz.cs
+++ b/server/AyaNova/biz/MemoBiz.cs
@@ -336,13 +336,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/PartAssemblyBiz.cs b/server/AyaNova/biz/PartAssemblyBiz.cs
index c1f2c23e..85ea2d6c 100644
--- a/server/AyaNova/biz/PartAssemblyBiz.cs
+++ b/server/AyaNova/biz/PartAssemblyBiz.cs
@@ -379,13 +379,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/PartBiz.cs b/server/AyaNova/biz/PartBiz.cs
index 39067e2f..4e0c3fbe 100644
--- a/server/AyaNova/biz/PartBiz.cs
+++ b/server/AyaNova/biz/PartBiz.cs
@@ -554,13 +554,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/PartWarehouseBiz.cs b/server/AyaNova/biz/PartWarehouseBiz.cs
index 61dc0264..b686e0ac 100644
--- a/server/AyaNova/biz/PartWarehouseBiz.cs
+++ b/server/AyaNova/biz/PartWarehouseBiz.cs
@@ -327,13 +327,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/ProjectBiz.cs b/server/AyaNova/biz/ProjectBiz.cs
index 636fe970..815e8cf4 100644
--- a/server/AyaNova/biz/ProjectBiz.cs
+++ b/server/AyaNova/biz/ProjectBiz.cs
@@ -327,13 +327,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/ReminderBiz.cs b/server/AyaNova/biz/ReminderBiz.cs
index 144df28b..184536ce 100644
--- a/server/AyaNova/biz/ReminderBiz.cs
+++ b/server/AyaNova/biz/ReminderBiz.cs
@@ -325,13 +325,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/ReviewBiz.cs b/server/AyaNova/biz/ReviewBiz.cs
index f7b21905..1aead844 100644
--- a/server/AyaNova/biz/ReviewBiz.cs
+++ b/server/AyaNova/biz/ReviewBiz.cs
@@ -403,13 +403,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/ServiceRateBiz.cs b/server/AyaNova/biz/ServiceRateBiz.cs
index 53d09a4a..294d55fe 100644
--- a/server/AyaNova/biz/ServiceRateBiz.cs
+++ b/server/AyaNova/biz/ServiceRateBiz.cs
@@ -344,13 +344,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/TaskGroupBiz.cs b/server/AyaNova/biz/TaskGroupBiz.cs
index e250d0c8..2cd9faec 100644
--- a/server/AyaNova/biz/TaskGroupBiz.cs
+++ b/server/AyaNova/biz/TaskGroupBiz.cs
@@ -325,13 +325,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
// if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/TaxCodeBiz.cs b/server/AyaNova/biz/TaxCodeBiz.cs
index 0dfe79df..87e812b1 100644
--- a/server/AyaNova/biz/TaxCodeBiz.cs
+++ b/server/AyaNova/biz/TaxCodeBiz.cs
@@ -373,13 +373,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/TravelRateBiz.cs b/server/AyaNova/biz/TravelRateBiz.cs
index e0b0b2bb..0822472c 100644
--- a/server/AyaNova/biz/TravelRateBiz.cs
+++ b/server/AyaNova/biz/TravelRateBiz.cs
@@ -340,13 +340,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/UnitBiz.cs b/server/AyaNova/biz/UnitBiz.cs
index f60517e3..6cfc9ae8 100644
--- a/server/AyaNova/biz/UnitBiz.cs
+++ b/server/AyaNova/biz/UnitBiz.cs
@@ -419,13 +419,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/UnitModelBiz.cs b/server/AyaNova/biz/UnitModelBiz.cs
index 298ff182..c77e6061 100644
--- a/server/AyaNova/biz/UnitModelBiz.cs
+++ b/server/AyaNova/biz/UnitModelBiz.cs
@@ -327,13 +327,13 @@ namespace AyaNova.Biz
return await GetReportData(dataListSelectedRequest, jobId);
}
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs
index 448261a4..3bba1b6b 100644
--- a/server/AyaNova/biz/UserBiz.cs
+++ b/server/AyaNova/biz/UserBiz.cs
@@ -1089,13 +1089,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/biz/VendorBiz.cs b/server/AyaNova/biz/VendorBiz.cs
index ed3a4888..9fcea72e 100644
--- a/server/AyaNova/biz/VendorBiz.cs
+++ b/server/AyaNova/biz/VendorBiz.cs
@@ -357,13 +357,13 @@ namespace AyaNova.Biz
- public async Task> ImportData(JArray ja)
+ public async Task> ImportData(AyImportData importData)
{
List ImportResult = new List();
string ImportTag = $"imported-{FileUtil.GetSafeDateFileName()}";
var jsset = JsonSerializer.CreateDefault(new JsonSerializerSettings { ContractResolver = new AyaNova.Util.JsonUtil.ShouldSerializeContractResolver(new string[] { "Concurrency", "Id", "CustomFields" }) });
- foreach (JObject j in ja)
+ foreach (JObject j in importData.Data)
{
var w = j.ToObject(jsset);
if (j["CustomFields"] != null)
diff --git a/server/AyaNova/models/dto/AyImportData.cs b/server/AyaNova/models/dto/AyImportData.cs
new file mode 100644
index 00000000..b1bc1a2f
--- /dev/null
+++ b/server/AyaNova/models/dto/AyImportData.cs
@@ -0,0 +1,19 @@
+using System;
+using AyaNova.Biz;
+using Newtonsoft.Json.Linq;
+
+namespace AyaNova.Models
+{
+
+ ///
+ /// Import data object used by admin->import feature
+ ///
+ public class AyImportData
+ {
+ public AyaType AType { get; set; }
+ public JArray Data { get; set; }
+ public bool DoImport {get;set;}
+ public bool DoUpdate {get;set;}
+ }
+
+}