From 7f4436aac6acf4da304408eff4df7f5069fa4443 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 30 Aug 2018 19:02:20 +0000 Subject: [PATCH] --- server/AyaNova/biz/UserBiz.cs | 90 +++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index ef5698c7..330aae74 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -326,26 +326,106 @@ namespace AyaNova.Biz public async Task ImportV7Async(JObject j, List importMap, Guid jobId) { + #region V7 record format + /* + { + "DefaultLanguage": "Custom English", + "DefaultServiceTemplateID": "ca83a7b8-4e5f-4a7b-a02b-9cf78d5f983f", + "UserType": 2, + "Active": true, + "ClientID": "00000000-0000-0000-0000-000000000000", + "HeadOfficeID": "00000000-0000-0000-0000-000000000000", + "MemberOfGroup": "0f8a80ff-4b03-4114-ae51-2d13b812dd65", + "Created": "03/21/2005 07:19 AM", + "Modified": "09/15/2015 12:22 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modifier": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "ID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "FirstName": "Hank", + "LastName": "Rearden", + "Initials": "HR", + "EmployeeNumber": "EMP1236", + "PageAddress": "", + "PageMaxText": 24, + "Phone1": "", + "Phone2": "", + "EmailAddress": "", + "UserCertifications": [ + { + "Created": "12/22/2005 02:07 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "4492360c-43e4-4209-9f33-30691b0808ed", + "UserCertificationID": "b2f26359-7c42-4218-923a-e949f3ef1f85", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "ValidStartDate": "2005-10-11T00:00:00-07:00", + "ValidStopDate": "2006-10-11T00:00:00-07:00" + } + ], + "UserSkills": [ + { + "Created": "12/22/2005 02:06 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "1dc5ce96-f411-4885-856e-5bdb3ad79728", + "UserSkillID": "2e6f8b65-594c-4f6c-9cd6-e14a562daba8", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3" + }, + { + "Created": "12/22/2005 02:06 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "88e476d3-7526-45f5-a0dd-706c8053a63f", + "UserSkillID": "47a4ee94-b0e9-41b5-afe5-4b4f2c981877", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3" + } + ], + "Notes": "", + "VendorID": "06e502c2-69ba-4e88-8efb-5b53c1687740", + "RegionID": "f856423a-d468-4344-b7b8-121e466738c6", + "DispatchZoneID": "00000000-0000-0000-0000-000000000000", + "SubContractor": false, + "DefaultWarehouseID": "d45eab37-b6e6-4ad2-9163-66d7ba83a98c", + "Custom1": "", + "Custom2": "", + "Custom3": "", + "Custom4": "", + "Custom5": "", + "Custom6": "", + "Custom7": "", + "Custom8": "", + "Custom9": "", + "Custom0": "", + "ScheduleBackColor": -2097216, + "TimeZoneOffset": null + } + */ + + #endregion v7 record format + V7ValidationImportMode = true; //some types need to import from more than one source hence the seemingly redundant switch statement for futureproofing switch (j["V7_TYPE"].Value()) { case "GZTW.AyaNova.BLL.User": - { + { var V7Id = new Guid(j["ID"].Value()); //Copy values - User i=new User(); - i.Name= j["Name"].Value(); - + User i = new User(); + i.Name = j["FirstName"].Value() + " " + j["LastName"].Value(); + i.UserType = j["UserType"].Value(); User o = await CreateAsync(i); if (HasErrors) { //If there are any validation errors, log in joblog and move on JobsBiz.LogJob(jobId, $" -> import object \"{i.Name}\" source id {V7Id.ToString()} failed validation and was not imported: {GetErrorsAsString()} ", ct); - + //This is a fundamental problem with the import as users are required for many things so bomb out entirely //other things might be able to work around but this is too serious throw new System.SystemException("UserBiz::ImportV7Async - FATAL ERROR, IMPORT FROM V7 CANNOT CONTINUE WITHOUT ALL USERS BEING IMPORTED, SEE JOB ERROR LOG FOR DETAILS");